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

Java do-while循环输出1-20奇偶性时重复输出2 is even排错

代码错误原因

你的代码共有3处问题,其中前两处是导致无限输出2 is even的核心原因:

  • 计数器自增位置错误:你在进入do-while循环前就执行了counter = counter + 1;,初始值为1的计数器在进入循环前就被修改为2,永远不会输出数字1的判定结果。
  • 循环体内缺少计数器自增逻辑:do-while循环的执行规则是先跑循环体内容、再校验循环终止条件,你的循环体中只有奇偶判断和打印逻辑,从未修改counter变量的值,counter会一直停留在2,counter <= 20的判断条件永远为真,自然会陷入死循环。
  • 奇偶判断逻辑冗余:整数对2取模的结果只有0和非0两种情况,不需要额外写else if (counter % 2 != 0)分支,直接用else即可,这个问题不会触发运行错误,但属于不必要的冗余代码。
修正后可正常运行的代码
public class Objective7Lab3 {
  public static void main(String[] args) {
    int counter = 1;
    do {
      if (counter % 2 == 0) {
        System.out.println(counter + " is even");
      } else {
        System.out.println(counter + " is odd");
      }
      // 每次打印完成后再给计数器自增
      counter = counter + 1;
    } while (counter <= 20);
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 02:36:23