Dieses Programm druckt die erste Anweisung und wird beendet, nachdem ich eine Zahl z. "5", ohne etwas anderes zu drucken. Von der Logik, die ich in die case
Anweisung eintrage, würde ich erwarten, dass es "Du bist kein Erwachsener :(" für 5 ausgibt. Andere Werte unter 120 funktionieren auch nicht wie erwartet.Meine Case-Anweisung funktioniert nicht, aber die Logik sieht für mich richtig aus
Was ist los?
print "Enter you age "
age = gets.chomp
if age.to_i<120
case age.to_i
when age.to_i<18
puts "You're not an adult :("
puts "Sorry"
when age.to_i>18
puts "You are now an adult!"
puts "phew"
end
end
Da du 'age.to_i' immer wieder verwendest, solltest du' age = gets.chomp.to_i' nur einmal konvertieren und dann verwenden. Was passiert auch, wenn jemand 18 eingibt? Das wird nicht zu beiden Fällen passen. Sie verhindern auch, dass jemand jünger als 120 Ihre Nachricht sieht. – tadman
Was ist falsch? Du sagst es. – sawa
Sie fragen, ob ein Boolescher Wert mit einer Zahl übereinstimmt. Offensichtlich tut es das nicht. –