Also habe ich zum ersten Mal mit Ruby rumgespielt, nachdem ich den Codecademy-Kurs bis zu "Object Oriented Programming, Part I" und I abgeschlossen habe beschlossen, einen Taschenrechner zu machen. Aus irgendeinem Grund bekomme ich diesen Fehler:Ich versuche einen einfachen Ruby-Rechner zu entwerfen und erhalte einen Fehler
calc.rb:13:in `addition': undefined local variable or method `user_input' for main:Object (NameError)
from calc.rb:21:in `<main>'
Ich bin verwirrt, warum es nicht meine „USER_INPUT“ Array sieht. Liegt es außerhalb des Anwendungsbereichs der Methode? Habe ich es falsch initialisiert?
Hier ist der Code, damit Sie selbst sehen können, es ist offensichtlich nichts anspruchsvoll und es ist nicht fertig. Ich versuche gerade jetzt, den Zusatz zu testen.
#!/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
"Ist es nicht im Rahmen der Methode?" Ja. – meagar
@Vanram Beachten Sie, dass 'bis gets.chomp ==" = "' und 'user_input << gets.chomp.to_i" beide eine Zeile lesen. Dies ist wahrscheinlich nicht das, was Sie wollen. – Stefan
@Stefan Wie würden Sie vorschlagen, dies zu beheben? – Vanram