我尝试执行的代码示例如下:
puts 'Please choose "A" or "B"?'
STDOUT.flush
@answer = gets.chomp.upcase
while @answer != "A" || "B"
puts 'Invalid answer, choose "A" or B"'
STDOUT.flush
@answer = gets.chomp.upcase
end
如果输入A或B,我怎样才能停止循环播放。如果我删除了While循环,我可以让@answer成为A或B,但是一旦我添加它就会不断循环,无论我输入什么内容。
答案 0 :(得分:1)
我认为你的WHILE条件不好,你不能只说A || B,也许重复这个条件?也许是这样的?
while @answer != "A" || @answer != "B"
希望它有所帮助。 :)
(编辑:甚至可以使用AND (&&)
代替OR (||)
?)
答案 1 :(得分:0)
以下方式也可行:
unless ["A","B"].include? @answer
答案 2 :(得分:0)
我更喜欢
@answer = nil
until @answer == 'A' || @answer == 'B' do
@answer = gets.chomp
end