You need to enable JavaScript to run this app. Java中sum += i++的执行逻辑是什么?为何运行结果为6?
优惠活动
大模型
产品
解决方案
定价
更多

Java中sum += i++的执行逻辑是什么?为何运行结果为6?

sum += i++ 执行逻辑及结果推导

核心语法拆解

sum += i++ 是两个语法的组合,执行顺序固定:

  • 复合赋值运算符 +=:sum += a 等价于 sum = sum + a
  • 后置自增运算符 i++:先返回i的当前值参与运算,再将i的数值加1

所以这行代码的执行步骤为:

  1. 读取i的当前值,作为参与加法运算的右值
  2. 把该值加到sum上,更新sum的数值
  3. 最后将i的数值加1

结合代码的完整执行推导

你提供的代码如下:

int num1 = 5;
int sum = 0;
         
if (num1 < 100) {
    for (int i = 0; i < num1; i++)
        sum += i++; //?
    System.out.println("sum = " + sum);
} else {
    sum = -1;
}
System.out.print(sum);  

for循环的固定执行逻辑为:初始化循环变量 → 判断循环条件 → 执行循环体 → 执行循环增量语句 → 再次判断循环条件,往复循环,完整执行过程如下:

  1. 初始化变量:num1 = 5,sum = 0
  2. 判断num1 < 100结果为真,进入if代码块
  3. 执行for循环:
    • 初始i赋值为0,第一次判断0 < 5成立,进入循环体
      • 执行sum += i++:取i当前值0加给sum,sum更新为0+0=0,i自增为1
      • 执行for循环的增量语句i++,i更新为2
    • 第二次判断2 < 5成立,进入循环体
      • 执行sum += i++:取i当前值2加给sum,sum更新为0+2=2,i自增为3
      • 执行for循环的增量语句i++,i更新为4
    • 第三次判断4 < 5成立,进入循环体
      • 执行sum += i++:取i当前值4加给sum,sum更新为2+4=6,i自增为5
      • 执行for循环的增量语句i++,i更新为6
    • 第四次判断6 <5不成立,退出for循环
  4. 最终输出sum的结果为6,和你运行得到的结果一致

注意事项

这种在for循环的增量语句和循环体中同时修改循环变量i的写法非常不推荐,可读性极低,很容易引发预期外的逻辑错误,实际开发中应当避免这类写法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 16:45:05