我有下面的循环,它的行为对我来说似乎很奇怪。直到循环卡住;表演奇怪?
这是一款BlackJack游戏的一部分,它要求用户输入一个投注。如果下注超过了用户的金额,那么它会循环回去。
c
等于500位置:
b = 90000000
until b < c
puts "You have $" + c.to_s + "."
puts "How much do you want to bet? "
b = gets.to_i
if b < c
@bet = gets.to_i
else
puts "Nice try."
end
end
我设置b
得高一些,以保证循环至少运行一次。当我开始循环并输入比我拥有的更高的数字时,它会按照它应有的做法,并循环要求下注。但是,当我最终输入一个有效的金额时,循环卡住了。
然后当我设置b
到一个足够低的数字,以便它跳过until
一切工作正常。
有谁知道我的循环为什么会粘住?
颠倒你的“直到”的逻辑。相反,使用'while b> = c'或简单的'loop'和'break'来测试你的条件。直到否定逻辑,使其更难阅读和理解。它是Ruby的一部分,但很少用于这个原因。 –