我有下面的循環,它的行爲對我來說似乎很奇怪。直到循環卡住;表演奇怪?
這是一款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的一部分,但很少用於這個原因。 –