Пожалуйста, прочитайте Как создать пример Minimal, Complete и Verifiable . Ваш текущий вопрос не дает достаточно данных, чтобы точно знать, каковы все проблемы. Например, ваш метод ask
не определен. Это значит, что я должен угадать, что ты делаешь.
Но я могу вам точно сказать, что одна проблема заключается в следующем коде:
while(sumNum != 0)
num = ask "Pick another number"
end
Ваше условие цикла основано на sumNum
, но нигде в вашем цикле вы не делаете ничего, что изменило бы sumNum
. Наивный подход может быть:
while(sumNum != 0)
<do something that modifies the value of sumNum>
end
Но так как мне не хватает остальной части вашего кода, я подумал, что я бы преобразовал ваш код во что-то, что работает:
puts 'What is your name?'
name = gets.chomp
# Don't use while/end: https://stackoverflow.com/a/10713963/3784008
loop do
puts 'Enter a number'
# gets returns a string that must be converted to an Integer
num = gets.chomp.to_i
# No need for % if all you care about is determining parity
break if num.even?
end
puts name + ' picked an even number!'