if number1 > number2 or number3 then
puts "Integers close"
end
Это не делает то, что вы хотите. Это значение будет равно true
всякий раз, когда number1 > number2
или число не равно nil (что невозможно, поскольку это всегда будет хотя бы пустая строка.) В качестве стиля then
не требуется.
Для вашей программы вы не хотите, чтобы пользователь вводил цифры 2 и 3, если он хочет выйти. Так что тест на выход после первого. Рефакторинг даст вам что-то вроде этого:
loop do
puts "enter each number then hit enter quit to end"
number1 = STDIN.gets
number1.chomp!
exit if number1 == "quit"
number2 = STDIN.gets
number2.chomp!
number3 = STDIN.gets
number3.chomp!
numbers = [number1,number2,number3]
if number1 > number2 or number1 > number3
puts "Integers close"
elsif number2 < number3
puts"Integers far"
end
end
Используйте chomp
вместо chop
, поскольку последний произвольно удаляет последний символ, тогда как первый специально предназначен для удаления \n
и \r
.