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

Java for循环代码输出不符:为何实际结果与预期不同?

问题分析:for循环执行逻辑导致的输出差异

代码示例

import java.util.*;
public class demo{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<5;i++){
            System.out.println(i);
            i=i+2;
        }
    }
}

预期输出

0
2
4

实际输出

0
3

原因解释

问题核心在于Java for循环的固定执行流程,它严格按以下步骤运行:

  1. 初始化:执行int i=0,仅在循环启动时执行一次。
  2. 条件校验:判断i<5是否为真,为真则进入循环体。
  3. 执行循环体:运行循环内的代码(打印i、执行i=i+2)。
  4. 增量操作:执行for循环头里的i++,然后回到步骤2重新校验条件。

我们逐次拆解循环过程:

  • 第一次循环:
    • 初始化i=0,0<5成立,进入循环体。
    • 打印0后,i=i+2使i变为2。
    • 执行i++,i最终变为3。
  • 第二次循环:
    • 3<5成立,进入循环体。
    • 打印3后,i=i+2使i变为5。
    • 执行i++,i最终变为6。
  • 第三次循环:
    • 6<5不成立,循环直接终止。

你预期的输出忽略了for循环自带的i++增量操作——每次循环体执行完毕后,i都会被额外加1。如果要得到预期的输出,可修改循环的增量表达式,去掉循环体内对i的手动修改:

for(int i=0;i<5;i=i+2){
    System.out.println(i);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:52:09