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

如何修复Java中循环打印0-9加n的错误实现(含for/while循环)

修复Java循环方法的问题(For和While循环)

For循环修复

原代码的问题:

  1. 循环范围不足:i < 9只能遍历0到8,漏掉了要求的i=9,导致少输出最后一个结果
  2. 计算逻辑错误:第一个条件里误用了取模运算符%,需求是整数除法/,应该写(i/2)+n而非(i%2)+n
  3. 输出格式缺失:没有添加逗号分隔,导致输出连在一起
  4. else分支逻辑需匹配预期:原代码输出i,结合预期结果来看这个逻辑是对的,如果需求确实是i+n可自行替换

修复后的代码:

public static void printCount(int n) {
    System.out.println("For Loop Output:");
    for (int i = 0; i <= 9; i++) {
        int result;
        if (i % 2 == 0) {
            result = (i / 2) + n;
        } else if (i % 3 == 0) {
            result = 0;
        } else {
            // 按预期输出此处为i,若需求是i+n可替换为i+n
            result = i;
        }
        // 处理逗号分隔,最后一个元素不加逗号
        System.out.print(result + (i == 9 ? "" : ", "));
    }
    System.out.println();
}

While循环修复

原代码的问题:

  1. 循环范围不足:同样是i < 9,漏掉了i=9
  2. 逻辑混乱:在if/else if分支内执行了i++,分支外又重复执行System.out.print(i)和i++,导致i被多次递增,直接跳过多个数值的处理
  3. 计算逻辑错误:第一个条件里直接输出i+n,而非需求的(i/2)+n
  4. 分支覆盖不全:额外输出了多余的数值,没有按规则处理所有情况

修复后的代码:

public static void printCountWhile(int n) {
    int i = 0;
    System.out.println("While Loop Output:");
    while (i <= 9) {
        int result;
        if (i % 2 == 0) {
            result = (i / 2) + n;
        } else if (i % 3 == 0) {
            result = 0;
        } else {
            // 按预期输出此处为i,若需求是i+n可替换为i+n
            result = i;
        }
        // 处理逗号分隔
        System.out.print(result + (i == 9 ? "" : ", "));
        // 统一在循环末尾递增i,避免逻辑混乱
        i++;
    }
    System.out.println();
}

测试验证

调用printCount(5)和printCountWhile(5),都会输出符合预期的结果:

5, 1, 6, 0, 7, 5, 8, 7, 9, 0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:10:44