「オブジェクト指向プログラミング、パートI」までのcodecademyコースを終えて初めてRubyを使いこなしました。電卓を作ろうと決めた。しかし、何らかの理由でこのエラーが発生します。私は単純なRuby電卓を設計しようとしていますが、エラーが発生しています
calc.rb:13:in `addition': undefined local variable or method `user_input' for main:Object (NameError)
from calc.rb:21:in `<main>'
"user_input"という配列が表示されないのはなぜですか?それは方法の範囲外ですか?それを間違って初期化しましたか?
あなた自身で見ることができるように、ここにコードがあります。明らかに洗練されたものではなく、完成していません。私はちょうど今追加のためにテストしようとしています。
#!/usr/bin/env ruby
user_input = Array.new
puts "Would you like to [a]dd, [s]ubtract, [m]ultiply, or [d]ivide? "
type_of_math = gets.chomp
def addition
operator = :+
puts "Please enter the numbers you want to add (enter \"=\" to stop adding numbers): "
until gets.chomp == "="
user_input << gets.chomp.to_i
end
sum = user_input.inject(operator)
return sum
end
case type_of_math
when "a"
addition
when "s"
puts "Test for subtraction"
when "m"
puts "Test for multiplication"
when "d"
puts "Test for division"
else
puts "Wrong"
end
「方法の範囲外ですか?」はい。 – meagar
@Vanramは 'until gets.chomp ==" = "'と 'user_input << gets.chomp.to_i'はどちらも行を読みます。これはおそらくあなたが望むものではありません。 – Stefan
@Stefanこれを修正することをどうお勧めしますか? – Vanram