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

Java实现FizzBuzz时仅当数字被5整除才输出fizz的BUG求助

问题原因

你的代码中,else分支和判断是否被5整除的if绑定,只要数字不满足被5整除的条件,不管之前是否已经拼接了fizz,都会直接把word覆盖为当前数字的字符串形式。
比如数字3:满足被3整除的条件时word被赋值为fizz,随后判断是否被5整除不成立,触发else分支把word覆盖为"3",最终输出数字而不是fizz。只有当数字同时满足被5整除的条件时,才不会触发else覆盖逻辑,之前拼接的fizz才能保留,这和你遇到的错误现象完全吻合。

修复方案

将else分支的覆盖逻辑,改为判断word是否为空(即没有匹配到任何整除规则)时,再赋值为数字字符串即可,修复后代码如下:

public List<String> fizzBuzz(int n) {
    List<String> result = new ArrayList<>();
    for (int i = 1; i <= n; i++) {
        String word = "";
        if (i % 3 == 0) {
            word += "fizz";
        } 
        if (i % 5 == 0) {
            word += "buzz";
        }
        // 仅当没有匹配到任何规则时,使用数字
        if (word.isEmpty()) {
            word = String.valueOf(i);
        }
        result.add(word);
    }
    return result;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:30:01