我已经使用 n-times 写了这个方法,用于使用 while循环进行用户输入。 这个想法非常简单和常见,如果条件为真,则重复while循环, 问题是它不起作用......
def play_again?
flag = true
while flag
print "Would you like to play again? [y/n]: "
response = gets.chomp
case response
when 'y'
Game.play
when 'n'
flag = false
end
end
flag
end
play_again?
目前它只会成功重复一次然后退出,而不是继续循环,你能告诉我出了什么问题吗? (对不起,如果这是一个n00b问题,毕竟我是一个红宝石n00b)
谢谢。
答案 0 :(得分:14)
可能出现的问题:
您也可以使用正则表达式(示例N)或答案列表(是)来检查答案:
def play_again?
while true
print "Would you like to play again? [y/n]: "
case gets.strip
when 'Y', 'y', 'j', 'J', 'yes' #j for Germans (Ja)
puts 'I play' # Game.play
when /\A[nN]o?\Z/ #n or no
break
end
end
end
play_again?