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

Java for循环实际值与预期不符,为何最终i为7而非6?

问题分析:为什么最终i的值是7而非6?

先看你的代码:

int i = 0;

for(i = 0; i < 3; i++) {
    System.out.println(i);
    
    if(i == 2) {
        i += 4;
        // continue;
    }
    
}

System.out.println(i);

核心原因是你忽略了for循环的完整执行流程:for循环的结构是 for(初始化; 条件判断; 递增/递减),每次循环体执行完毕后,必然会执行最后的递增/递减操作,再进行下一次条件判断。

具体执行步骤拆解:

  1. 初始化i=0,第一次条件判断0<3成立,进入循环体,打印0,不触发if分支,执行i++,i变为1。
  2. 条件判断1<3成立,进入循环体,打印1,不触发if分支,执行i++,i变为2。
  3. 条件判断2<3成立,进入循环体,打印2,触发if分支,i +=4后i变为6。此时循环体执行完毕,必须执行for循环的i++操作,i变为7。
  4. 条件判断7<3不成立,循环结束,最后打印i的值就是7。

你预期的6是误以为触发if分支后会直接跳过递增操作,但实际上for循环的递增步骤是独立于循环体的,只要循环体执行完毕,就会执行这个步骤,之后才会判断是否继续循环。

内容的提问来源于stack exchange,提问作者이기주

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 21:32:33