循环验证失效求助:石头剪刀布游戏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
相关产品推荐
相关产品推荐

