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

JS密码猜测循环:如何正确显示「无剩余尝试次数」提示?

密码验证循环逻辑修正

原代码的核心问题

  1. 错误使用赋值操作i = 0而非严格相等判断i === 0,但更关键的是:循环条件为i > 0,循环执行时i的取值是3、2、1,永远不会等于0,所以该分支永远无法触发。
  2. 条件分支顺序错误:应优先判断密码正确的情况,再处理错误分支;三次错误的提示需要在最后一次尝试失败时触发。

修正后的代码

for (let i = 3; i > 0; i--) {
  let password = prompt("What is the password?");
  // 优先判断密码是否正确
  if (password?.toUpperCase() === "BINGO") {
    alert("You may enter");
    break; // 验证通过后立即退出循环
  } else {
    // 判断是否是最后一次尝试机会
    if (i === 1) {
      alert("No more tries left");
    } else {
      alert("Try again");
    }
  }
}

关键改动说明

  • 调整条件顺序:先验证密码正确性,通过后用break终止循环,避免多余的输入提示。
  • 错误分支中,用i === 1判断是否为最后一次尝试(此时是第三次输入机会),输错则触发"No more tries left"提示。
  • 增加password?.toUpperCase()可选链:防止用户点击prompt的「取消」按钮时,password为null导致调用toUpperCase()报错(若环境不支持可选链,可替换为password && password.toUpperCase())。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 09:15:22