我想弄清楚为什么我的while循环没有退出时,我希望它。 基本上我正在制作一个简单的游戏,其中2个玩家玩单词并且每玩一个允许的单词就获得积分。一旦一个玩家玩一个以特定角色结尾的单词,该玩家就会失去游戏。了解Ruby while循环
我这样做的方式是将值设置为false(在循环之前),然后使用while循环让游戏继续进行,直到玩家输入一个丢失的单词,此时循环应立即退出,而不会去玩家2(目前它的确如此)。 这里基本上是什么我现在(在这一点上,我只是想获得基本的逻辑去):
player1_count = 0
player2_count = 0
continue = true
while continue
## get input
if player1_input[-1] == losing_char
continue = false
else
player1_count += 1
end
##do the same for player 2
## get input
if player2_input[-1] == losing_char
continue = false
else
player2_count += 1
end
end
,我遇到的问题是,我希望的是,当继续设为假,循环会立即终止,而它会一直持续到当前循环结束,同时获得玩家2的输入(如果玩家1失败),这是我不想要的。我在猜测,要么我对Ruby的循环是如何工作有错误的想法,要么我在编写循环/错误地使用它的地方弄错了一些地方。
有没有办法写while循环它将继续前进,直到我的继续变量设置为false,并让它立即退出,因为我希望?
你可以使用更习惯的'loop do'而不是'while true'。我会删除'else'并使用一个修饰符 - 如果不是,那么'break if player1_input [-1] == losing_char'。 – Stefan
事实上,这些都会更加地道,但我想保持简单,因为OP似乎是新的红宝石 –