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

Java按条件输出数字每行5个时出现多余空行问题求解

问题原因

你定位的诱因完全准确,核心bug是换行判断的执行逻辑错误:

  • 原代码中换行判断if (count%5==0)和有效数字筛选判断是平级关系,每次for循环迭代都会执行,和本次循环是否打印了符合要求的数字无关。
  • 当count累计到5之后,后续遍历到不符合筛选规则的数字时,count值不会变化,count%5==0的条件会持续命中,每遍历一个无效数字就会多打印一次换行,最终产生大量多余空行。
  • 额外小问题:原代码在每个数字后固定拼接空格,最后一行末尾会残留多余空格,不符合规整输出要求。
修正方案

将换行判断逻辑移动到有效数字打印的代码块内部,仅在成功打印一个符合要求的数字后,再判断是否需要换行;同时调整空格打印逻辑,避免行尾残留多余空格。

修正后的可运行代码如下:

public class Main {
    public static void main(String[] args) {
        int n = 10, m = 50, a = 2, b = 3;
        int count = 0;
        for (int i = n; i <= m; i++) {
            if (i % a == 0 && i % b != 0) {
                System.out.print(i);
                count++;
                if (count % 5 == 0) {
                    // 凑够5个数字,打印换行
                    System.out.println();
                } else {
                    // 未凑够5个,打印空格分隔下一个数字
                    System.out.print(" ");
                }
            }
        }
        // 最后一行不足5个数字时,补末尾换行保证格式规整
        if (count % 5 != 0) {
            System.out.println();
        }
    }
}

运行上述代码可以完全匹配预期输出,不会产生多余空行,也没有行尾多余空格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:12:25