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

FizzBuzz代码中count++在else语句内无效,移至外部正常的原因?

FizzBuzz中count++位置问题解析

问题代码

var output = []; 
var count = 1;

function fizzBuzz() {
    if (count % 5 === 0 && count % 3 === 0) {
        output.push("FizzBuzz");
    } else if (count % 5 === 0) {
        output.push("Buzz");
    } else if (count % 3 === 0) {
        output.push("Fizz");
    } else {
        output.push(count++);
    }
    // count++;//
    console.log(output);
}

问题描述

count++写在else语句中无法正常工作,但将其移至else语句外部则可正常运行,请问这是什么原因?

原因解析

  • 当count能被3或5整除时(比如3、5、15这类数),代码会进入前三个条件分支(if/else if),此时else分支里的count++完全不会执行。这就导致count的值一直停留在当前数,下次调用fizzBuzz()时,还是判断同一个count,无限重复添加对应的Fizz/Buzz/FizzBuzz,永远无法处理下一个数。
  • 把count++移到所有条件分支外面后,不管进入哪个分支,每次调用fizzBuzz()都会执行count++,count的值每次都会递增,这样就能依次处理1、2、3...每个数字,程序自然能正常运行。

举个具体例子:

  • 若count++在else里:当count=3时,进入第三个分支push"Fizz",但count还是3;下次调用函数时,依然判断count=3,再次push"Fizz",循环往复,output数组会被无限添加"Fizz"。
  • 若count++在外部:当count=3时,push"Fizz"后执行count++,count变成4;下次调用就会处理4,程序按预期推进。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 23:40:32