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

为何while循环条件含整除判断失效,需嵌套if语句?

为什么while循环的条件写法无法实现FizzBuzz需求?

需求:定义一个函数fizzBuzz(max),接收一个数字参数,打印0到max(不包含max)之间所有能被3整除的数字。

下面两种while循环写法,一种无效一种有效,核心区别如下:

无效写法

let i=0;
while (i<max && i%3===0) {
    console.log (i);
    i++;
} 

有效写法

let i=0;
while (i<max) {
    if (i%3===0) {
        console.log (i);
    }
    i++;
}

问题根源

  • 无效写法的循环条件同时绑定了i < max和i%3===0:初始i=0满足条件,打印后i自增为1,此时i%3===0不成立,循环直接终止,只会输出0,完全无法遍历后续数字。
  • 有效写法的循环条件只保留i < max,确保遍历0到max-1的所有数字,再通过内部if判断筛选出能被3整除的数打印,这样就能覆盖所有符合要求的数字。

内容的提问来源于stack exchange,提问作者Mỹ Trần

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 10:50:57