在 while 循环中编写提示

Writing a prompt inside a while-loop

我希望代码继续,只有当用户输入石头、布或剪刀时,但它似乎在我第二次重新输入任何输入后继续,尽管它在 while 循环中传递了条件。例如,如果我输入 "asdf",它会要求我重新输入,但是如果我再次输入 "asdf",它会退出 while 循环并注销 "asdf"。我希望它一直提示用户,直到他们输入 "rock"、"paper" 或 "scissors"

var userChoice = prompt("Enter rock, paper, or scissors", "rock").toLowerCase();


while (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors" ) {
  userChoice = prompt("renter Please");
}

console.log(userChoice);

所以如果用户重新进入超过一次你return false 或退出系统。

     var userChoice = prompt("Enter rock, paper, or scissors").toLowerCase();
        while (userChoice != "rock" && userChoice != "paper" && userChoice !=
            "scissors") {
            userChoice = prompt("renter Please");
           
        }
        console.log(userChoice)

一旦您将 userChoice 分配给 "paper" "scissors" 或 "rock" 的值,如果不更改,它的值将保持不变,因此 while 循环不会重新启动。

尝试 运行 while 循环之后的任何代码添加类似这样的内容。

while (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors" ) {
  userChoice = prompt("renter Please");
}

console.log(userChoice);

userChoice = 0;

然而,这仅在您的代码嵌套在另一个循环中时才有效

loop{
    var userChoice = prompt("Enter rock, paper, or scissors", "rock").toLowerCase();

    var userChoice = prompt("Enter rock, paper, or scissors", "rock").toLowerCase();


    while (userChoice !== "rock" && userChoice !== "paper" && userChoice !== "scissors" ) {
      userChoice = prompt("renter Please");
    }

    console.log(userChoice);
    userChoice = 0;
}