本文详解 Java 中 b++(后置自增)的执行顺序,说明为何变量 c 的值为 8 而非 9,并通过代码演示其与前置自增 ++b 的本质区别。
本文详解 java 中 `b++`(后置自增)的执行顺序,说明为何变量 `c` 的值为 8 而非 9,并通过代码演示其与前置自增 `++b` 的本质区别。
在 Java 中,自增(++)和自减(--)运算符分为前置(++b / --b)和后置(b++ / b--)两种形式,它们的关键区别在于表达式的求值时机与副作用(即变量修改)发生的顺序。
以原始代码为例:
int a = 5, b = 3;System.out.println(a + b); // 输出 8(5 + 3)int c = a + b++; // 关键:b++ 先取 b 当前值(3),再将 b 加 1b++; // 此时 b 再次自增(从 4 → 5)System.out.println(a + b); // 输出 10(5 + 5)System.out.format("a=%d, b=%d, c=%d %n", a, b, c); // 输出:a=5, b=5, c=8
我们逐行分析关键语句 int c = a + b++;:
最终 c = 8,而非直觉中“b 自增后再参与计算”的 9——因为 b++ 并不改变它自身在当前表达式中的贡献值。
立即学习“Java免费学习笔记(深入)”;
✅ 对比前置自增 ++b:
int a = 5, b = 3;int c = a + ++b; // ++b 先将 b 改为 4,再取新值参与计算 → 5 + 4 = 9System.out.println(c); // 输出 9System.out.println(b); // 输出 4
⚠️ 注意事项:
总结:c = 8 的根本原因在于 b++ 的语义是「先使用,后更新」。理解这一机制,是写出可靠、可维护 Java 表达式的基础。