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

JavaScript While循环多条件问题:代码无输出或仅输出10

问题排查:两段循环代码的问题分析

咱们来逐个拆解这两段代码的问题,一眼就能看出为啥要么只输出10要么完全没输出了:

第一段代码的问题

先看这段代码:

var num2 = 10; 
while (num2 >= 10 && num2 <= 40 && num2%2===0){ 
  console.log(num2); 
  num2++; 
}

这里的循环条件把num2%2===0也加进去了,第一次循环时num2是10,满足所有条件,输出10,然后num2变成11。这时候num2%2===0不成立(11是奇数),循环直接终止了,所以只会输出一次10,之后就停了。

第二段代码的问题

再看这段:

var num2 = 10; 
while (num2 >= 10 && num2 <= 40){ 
  if (num2%2===0){ 
    console.log(num2); 
    num2++; 
  }
}

这次循环条件没问题,但**num2++只在if条件满足的时候执行**。第一次输出10后num2变成11,接下来进入循环,11是奇数,if条件不满足,所以不会执行num2++,num2一直保持11,循环条件11 >=10 && 11 <=40永远成立,直接陷入死循环!而且因为11不是偶数,不会输出任何内容,看起来就像程序没反应一样。

修复方案

如果你的需求是输出10到40之间的所有偶数,正确的写法应该是把num2++放在if外面,不管是不是偶数都让num2递增,这样就不会死循环了:

var num2 = 10; 
while (num2 >= 10 && num2 <= 40){ 
  if (num2%2===0){ 
    console.log(num2); 
  }
  num2++; // 移到这里,每次循环都递增
}

或者更简洁的,直接让num2每次加2,这样不用判断奇偶:

var num2 = 10; 
while (num2 <= 40){ 
  console.log(num2); 
  num2 += 2; 
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:59:33