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

为什么JavaScript中while循环条件满足时仍意外停止运行?

问题原因

你的循环意外停止的核心原因是缺少对非指定命令输入的分支处理,具体逻辑问题如下:

  • 只有当用户输入new或list时,你的代码才会调用prompt重新获取用户输入,更新want变量的值
  • 当用户输入quit之外的其他内容时,代码既不会进入if(want==="new")分支,也不会进入else if(want==="list")分支,循环体内没有任何执行逻辑,也不会更新want的值
  • 此时want的值一直是用户输入的非指定内容,始终满足while(want!=="quit")的循环条件,代码进入空转死循环,浏览器检测到脚本无响应后就会自动终止运行,表现就是程序意外关闭

修复方案

你只需要在两个判断分支后新增一个else分支,处理非法输入的情况,在该分支内重新获取用户输入即可,修改后的代码如下:

let want = prompt("What Do You Want To Do?");
let list = [];
let listItem = "";

while (want !== "quit") {
  if (want === "new") {
    listItem = prompt("Enter A Task You Want To Add");
    console.log(`${listItem} added to your todo list.`);
    list.push(listItem);
    want = prompt("What Do You Want To Do?");
  } else if (want === "list") {
    console.log("*******");
    for (let i = 0; i < list.length; i++) {
      console.log(list[i]);
    }
    console.log("*******");
    want = prompt("What Do You Want To Do?");
  } else {
    // 处理非法输入
    alert("请输入有效命令:new/list/quit");
    want = prompt("What Do You Want To Do?");
  }
}
console.log("Okay You Quit");

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 07:15:02