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

以下JavaScript代码为何陷入无限循环?如何修复该问题

问题分析与修复方案

无限循环原因

  • 每次进入for(;;)循环时,都会重新执行let i = index,导致i始终被初始化为10,完全没在上一次循环的结果基础上递减。
  • 执行i -= jump后,i的值变为8,此时判断i === jump(也就是8等于2)永远不成立,break语句永远不会触发,循环会一直无限运行。

修复方案

把i的初始化语句移到循环外部,让它能在每次循环中持续递减:

let index = 10;
let jump = 2;

// 将i的初始化放到循环外,确保每次循环基于上一次的结果更新
let i = index;
for (;;) {
    console.log(i);
    i -= jump;
    if (i === jump) {
        break;
    }
}

修复后,i会从10开始,每次减2:10 → 8 → 6 → 4 → 2,当i等于jump(2)时,触发break终止循环,不会再无限运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:30:44