Совершенно новый для кодирования и пытается выяснить, как оценивать, является ли пользовательский ввод плавающей точкой или целым числом больше 0, и если не продолжать предлагать им ответ, пока они не дадут мне ответ, соответствующий этим критериям.Как создать цикл на основе ввода пользователем float/integer vs string в Ruby?
я смог придумать следующее, что помогает мне отделить действительные ответы (число> 0) от недействительных ответов (строка или число < = 0):
input = "How much money do you have?"
print input
money_1 = gets.chomp.to_f
if money_1 > 0
puts "You have $#{money_1}."
else
puts "Please enter a valid amount"
print input
end
Что я могу 't выяснить, как превратить это в цикл, так что пользователь должен продолжать вводить ответ, пока не будет введено число, большее 0.
Любые советы? Похоже, это должен быть очевидный ответ, но я не нашел ничего, что работает через пару часов, чтобы копаться и пытаться.
Я также хотел бы знать, есть ли более простой способ, чем мой обходной путь, чтобы оценить, является ли пользовательский ввод плавающим или целочисленным по отношению к строке, а затем продолжать запрашивать их для ответа, пока они не дадут мне поплавок или целое число. Проблема заключается в том, что мне нужно преобразовать их вход в float, чтобы иметь возможность использовать его в уравнении позже в коде, поэтому я придумал это обходное решение, потому что я решил, что любая строка будет преобразована в 0, и я действительно только ищу номера больше 0, но если есть лучший способ, я бы с удовольствием узнал об этом!
Спасибо!
Если вы нашли какой-либо ответ полезным, обязательно примите ответ, нажав соответствующий «серый тик», чтобы он стал зеленым. –