You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

循环验证失效求助:石头剪刀布游戏JavaScript输入验证问题

问题解决:石头剪刀布游戏输入验证循环无法退出

你的代码核心问题出在while循环的逻辑运算符使用错误:

原条件用了||(逻辑或),这意味着只要choice不等于三个选项中的任意一个,循环就会继续。但当用户输入有效值时(比如"Rock"),choice !== "Scissors"和choice !== "Paper"必然为true,整个条件结果还是true,循环永远不会停止。

两种修复方案

方案1:修正逻辑运算符

把||改成&&(逻辑与),这样只有当choice同时不等于三个选项时,才会进入循环:

let choice;
while (choice !== "Rock" && choice !== "Scissors" && choice !== "Paper") {
    choice = prompt("Rock, Paper or Scissors?");
    choice = choice.charAt(0).toUpperCase() + choice.substring(1).toLowerCase();
}
return choice;

方案2:用数组存储有效值(更简洁易维护)

把有效选项存入数组,用includes()方法判断输入是否合法,代码可读性更高,后续新增选项也更方便:

let choice;
const validChoices = ["Rock", "Paper", "Scissors"];
while (!validChoices.includes(choice)) {
    choice = prompt("Rock, Paper or Scissors?");
    choice = choice.charAt(0).toUpperCase() + choice.substring(1).toLowerCase();
}
return choice;

内容的提问来源于stack exchange,提问作者Sven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:06:27