使用||在2个条件下循环在JavaScript中

时间:2019-01-31 19:05:31

标签: javascript

我正在经历Odin项目。有一项作业需要我创建石头,纸和剪刀游戏。我目前遇到的问题是知道何时结束游戏。

while (computerScore < 3 || playerScore < 3) {
let answer = prompt('Rock, Paper, or Scissors');
   console.log(playRound(answer, computerPlay()));
   console.log("Computer has " + computerScore + " points and you have " + playerScore + " points.")
     }

如果您在上方看,则看到我有一个循环,如果计算机或播放器的分数小于3,该循环会不断循环,但是只有当两个播放器都击中3时,循环才会停止。电脑或播放器都达到了3分。

playRound是一个可以检查谁获胜的功能,也会为获胜者得分增加1分。

感谢您的帮助!

5 个答案:

答案 0 :(得分:1)

只要两个玩家的值都小于{3},就继续进行下去。

如果一名玩家的得分为3,则退出循环。

while (computerScore < 3 && playerScore < 3) {
    // ...
}

答案 1 :(得分:1)

要扩展一些告诉您如何解决它的答案,我想指出为什么您的代码不起作用。

当前,您的代码指出,如果玩家的分数小于3或计算机的分数小于3,请执行while循环。请记住,只要条件的计算结果为true,while就会循环运行。

因此,如果计算机的得分为3,而玩家的得分为2,则您的情况当前将评估为true,因为玩家的得分小于3。

您需要使用&&运算符,以便当一名玩家的得分达到3时您的情况为假。

let computerScore = 3;
let playerScore = 2;

//computerScore < 3 = false;
//playerScore < 3 = true;

//while(false || true) evaluates to true
while(computerScore < 3 || playerScore < 3){
    //code will always run as long as one of the players' scores is < 3
}

//while(false && true) evaluates to false
while(computerScore < 3 && playerScore < 3){
    //code will stop running when either player's score reaches 3
}

答案 2 :(得分:0)

如果您想在任何情况下停止循环,请使用<ManageScreens>: transition: NoTransition() January: name: 'january' id: january canvas.before: Color: rgba: 0, 0, 0, 1 Rectangle: size: self.size pos: self.pos RelativeLayout: Label: text: "January" font_size: 20 pos_hint: {'center_x': 0.5, 'center_y': 0.88} GridLayout: pos_hint: {'top': 0.85} row_default_height: 75 row_force_default: True cols: 7 rows: 5 spacing: 10 padding: 10 CalendarButt: text: '' CalendarButt: text: '' CalendarButt: text: '1' CalendarButt: text: '2' 而不是 SELECT e.PartitionByDeviceId, e.deviceid, e.UnixTime, e.MessageParsedTimestamp, e.Latitude, e.Longitude, e.ObdVIN, e.Address, ST_WITHIN(createpoint(e.latitude,e.longitude), arrayElement.ArrayValue.geometry) as Inbound FROM geoinput as e CROSS JOIN georef as event CROSS APPLY GetArrayElements(event.features) AS arrayElement

&&

答案 3 :(得分:0)

只需使用||

while (computerScore < 3 && playerScore < 3) {
let answer = prompt('Rock, Paper, or Scissors');
   console.log(playRound(answer, computerPlay()));
   console.log("Computer has " + computerScore + " points and you have " + playerScore + " points.")
}

答案 4 :(得分:0)

您要让游戏继续进行,如果任一玩家的年龄低于3。

您正在寻找这种逻辑:

如果播放器少于3个,计算机小于3个,则继续。

while (player < 3 && computer < 3) { 
    //play game
}