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

为什么我的JavaScript do...while循环无法正常退出?

问题根因

你代码陷入无限循环的核心问题是while后的条件使用了错误的逻辑运算符:
你编写的条件为 while (action !== 'E' || action !== 'e'),这里使用了逻辑或(||),我们可以直接拆解判断逻辑:

  • 输入大写E时:action !== 'E'为假,但action !== 'e'为真,逻辑或只要有一个条件为真,整体判断结果就为真,循环继续
  • 输入小写e时:action !== 'E'为真,action !== 'e'为假,整体判断结果还是为真,循环继续
  • 无论输入任何值,这两个判断永远有一个成立,所以条件永远为真,循环不可能正常退出。
修复方案

把逻辑或||替换为**逻辑与(&&)**即可,修改后的循环条件如下:

} while (action !== 'E' && action !== 'e');

逻辑与的判断规则是:只有所有条件都为真时整体结果才为真。修改后只有当action既不等于E也不等于e的时候,循环才会继续;只要输入了E或者e,其中一个判断为假,整体条件就为假,循环正常退出。

可选优化点
  • 可以把输入内容统一转成大写/小写后再判断,简化代码逻辑,示例:
    // 获取输入后先转大写,后续判断只需要校验大写情况即可
    action = prompt("你可以选择查询账户(C)、取款(W)、退出(E),请选择操作").trim().toUpperCase();
    // while条件可以直接简化为 while(action !== 'E')
    
  • 取款逻辑可以补充余额校验,避免出现余额为负的情况
  • checkAccounts方法中chequin为拼写错误,正确应为chequing

内容的提问来源于stack exchange,提问作者m3.b

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:45:03