gpt4 book ai didi

javascript - 无法让我的函数运行多次并破坏我的代码

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:45:00 24 4
gpt4 key购买 nike

我正在尝试运行此函数,直到玩家或计算机获胜 5 次。如果没有 while 循环,它运行一次并且一切正常。一旦我添加了一个 while 循环,该函数仍然只运行一次并且它给了我一个未定义的返回值。

function playToFive() {
console.log('Let\'s play Rock Paper Scissors');
var playerWins = 0;
var computerWins = 0;
while (playerWins === 5 || computerWins === 5) {
if (humanVsMachine === 'player') {
playerWins += 1;
} else if (humanVsMachine === 'computer') {
computerWins += 1;
}
return [playerWins, computerWins];
}
}

console.log(playToFive());

最佳答案

while(playerWins === 5 || computerWins === 5)

您的 while 循环实际上永远不会执行,因为您正在检查是否相等并且 playerWinscomputerWins0最初。

您可能正在寻找更像这样的条件:

while(playerWins < 5 && computerWins < 5)

请注意,我们使用的是逻辑与 &&而不是逻辑或 || .这是因为您不想一直循环直到他们都赢了。逻辑 OR 意味着即使计算机赢了但玩家没有赢,我们也会继续循环。只有一个条件需要为真,整个陈述才为真。

当我们使用逻辑 AND 时,如果其中一个为假(意思是,如果只有一个玩家已经达到 5 胜),那么我们将按预期跳出循环。

下一个问题是你的while循环中有一个return语句,所以在第一次执行后,即使还没有达到5胜,它也会返回玩家胜数和电脑胜数的数组。

您应该将 return 语句放在循环之后,这样您就可以运行循环 5 次,然后在有人赢了之后返回。

最后,由于您没有提供其余代码,我不确定 humanVsMachine实际上是定义的;如果您在函数之外定义了它,那么您就可以开始了。

关于javascript - 无法让我的函数运行多次并破坏我的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30381523/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com