控制台石头剪刀布游戏首个if条件无输出问题求助
问题解决:石头剪刀布游戏if条件无输出的原因及修复
核心问题:你的
computerSelection变量存储的是数组的索引数字(0、1、2),而不是对应的"rock"/"paper"/"scissors"字符串。你在控制台打印的是getComputerChoice[computerSelection],但变量本身还是数字,和playerSelection的字符串比较自然永远不相等,所以if条件不会触发。修复步骤:
- 把
computerSelection改成直接存储随机选中的选项字符串:
这样变量里存的就是和const computerSelection = getComputerChoice[Math.floor(Math.random() * getComputerChoice.length)];playerSelection同类型的字符串了。 - 额外优化:用户通过prompt输入时可能会有大小写差异(比如输入"Rock"或"ROCK"),可以把输入转成小写避免匹配失败:
const playerSelection = prompt("Rock, Paper, or Scissors?").toLowerCase();
- 把
修正后的完整代码:
// 定义可选选项数组 const getComputerChoice = ["rock", "paper", "scissors"] // 随机选择电脑的选项,直接存储对应的字符串 const computerSelection = getComputerChoice[Math.floor(Math.random() * getComputerChoice.length)]; console.log(computerSelection); // 现在打印的就是电脑选的字符串 // 获取玩家输入并转成小写 const playerSelection = prompt("Rock, Paper, or Scissors?").toLowerCase(); // 判断平局情况 if (playerSelection === "rock" && computerSelection === "rock") { console.log("It's a tie!") }
内容的提问来源于stack exchange,提问作者lambchopthekid
相关产品推荐
相关产品推荐

