我正在做一个小游戏,里面显示数学问题,用户输入答案。
当用户写一封信时,它转换为0,但我希望程序要求用户重新输入输入。
代码应接受+、-、和数字
每一个其他输入都应该触发循环运行,直到输入正确的输入。
我的代码是这样的。。。。
def ask_questions
question = @questionAndAnswerList[@currQuestion]
a = question.question.q1
b = question.question.q2
print("what is #{a} #{a+b > question.answer ? "-" : '+'} #{b} ? = ")
puts @userAnswer = gets().chomp
#test if @userAnswer has a Digit value
while /[+|-]\D/ =~ @userAnswer
puts "Found a non digit in your input , please try again...."
puts @userAnswer = gets.chomp
end
@userAnswer = @userAnswer.to_i
end
最佳答案
您可以使用Integer()
,如果没有转换,它将引发异常。
begin
@userAnswer = Integer(@userAnswer, 10)
rescue ArgumentError
puts "#{@userAnswer.inspect} is not an integer, please try again..."
@userAnswer = gets.chomp
retry
end
关于ruby - 检查用户是否输入了数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27041468/