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

使用while循环实现指定倍数输出时遭遇无限循环问题求助

问题排查:无限循环问题分析

你的代码出现无限循环的核心原因是:当i等于param4时,执行了continue语句,直接跳过了循环体中后续的i++代码。这会导致i的值永远停留在param4,无法满足循环退出条件i <= param3,从而陷入无限循环。

以示例输入(3,5,17,9)为例,当i走到9时,触发if (i == param4)条件,执行continue,跳过了i++,所以i一直是9,循环永远不会结束。

修正后的代码

有两种常见的修正方式:

方式一:在continue前先递增i

function finalCount(param1, param2, param3, param4) {
  var i = param2;
  while (i <= param3) {
    if (i == param4) {
      i++; // 先递增再跳过后续逻辑
      continue;
    } else if (i % param1 == 0) {
      console.log(i);
    }
    i++;
  }
}
finalCount(3, 5, 17, 9)

方式二:调整逻辑,避免使用continue

function finalCount(param1, param2, param3, param4) {
  var i = param2;
  while (i <= param3) {
    if (i !== param4 && i % param1 == 0) {
      console.log(i);
    }
    i++;
  }
}
finalCount(3, 5, 17, 9)

两种方式都能解决无限循环问题,并且符合题目要求输出6、12、15。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 15:06:29