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

Java中1到6求和while循环疑问:sum += i++; 执行逻辑及与++i的区别

Java中sum += i++;的执行逻辑解析

先把核心逻辑讲透:i++是后置自增运算符,它的执行顺序是:先返回变量当前的数值参与运算,运算完成后再把变量自身加1。所以sum += i++;完全等价于两步分开写:

sum = sum + i;
i = i + 1;

我们一步步拆解这段代码的循环过程,就能明白结果为什么是21:

  • 初始状态:i=1,sum=0
  • 第1次循环(i<=6成立):sum = 0 + 1 → sum=1,之后i变成2
  • 第2次循环(i<=6成立):sum = 1 + 2 → sum=3,之后i变成3
  • 第3次循环(i<=6成立):sum = 3 + 3 → sum=6,之后i变成4
  • 第4次循环(i<=6成立):sum = 6 + 4 → sum=10,之后i变成5
  • 第5次循环(i<=6成立):sum = 10 + 5 → sum=15,之后i变成6
  • 第6次循环(i<=6成立):sum = 15 + 6 → sum=21,之后i变成7
  • 此时i=7,不满足i<=6,循环结束,输出sum=21

你之前的误解是把i++当成了先自增再求和,那其实是**前置自增运算符++i**的逻辑:++i会先把变量加1,再用新值参与运算。如果把代码里的i++换成++i,循环过程会完全走偏——第一次循环就会把i变成2,sum直接加2,最后循环结束时sum会是2+3+4+5+6+7=27,完全不符合累加1-6的需求。

这段代码用i++而不是++i,就是因为它的目标是计算1到6的整数和。i++的特性刚好能让每次循环都把当前的i值(从1到6)依次加到sum里,完成后i自增用来判断下一次循环是否继续,完美匹配需求。

内容的提问来源于stack exchange,提问作者Seung-nam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:54:33