Java中自增(++)和自减(--)运算符分前缀与后缀:前缀先运算后取值,后缀先取值后运算;仅适用于可修改变量,不可用于常量或表达式;在复杂表达式中易引发副作用和歧义,应避免同一变量多次修改。

Java中的自增(++)和自减(--)运算符用于将变量的值加1或减1,但它们的位置(前缀 vs 后缀)会直接影响表达式的计算结果,这是初学者最容易出错的地方。
前缀++/--:先运算,再取值
当++或--放在变量前面时,变量立即完成加1或减1操作,整个表达式的结果就是变化后的新值。
-
int a = 5; int b = ++a;→ a先变成6,b得到6 -
int x = 10; int y = --x;→ x先变成9,y得到9
后缀++/--:先取值,再运算
当++或--放在变量后面时,表达式先使用变量的当前值,之后变量才加1或减1。
-
int a = 5; int b = a++;→ b得到5,然后a才变成6 -
int x = 10; int y = x--;→ y得到10,然后x才变成9
只对变量有效,不能用于常量或表达式
自增自减运算符要求操作数必须是可修改的变量(左值),以下写法都是非法的:
立即学习“Java免费学习笔记(深入)”;
-
5++;❌ 数字字面量不可变 -
(a + b)++;❌ 表达式结果不是变量 -
++(arr[i]);✅ 可以,因为arr[i]是变量 -
final int c = 3; c++;❌ final变量不可修改
在复杂表达式中要格外小心优先级和副作用
自增/自减带有副作用(改变原变量),和其它运算混合时容易引发歧义。例如:
-
int i = 2; int j = i++ + ++i;→ 执行顺序依赖JVM实现,实际结果为6(但不推荐这样写) - 更安全的做法是拆开:先单独自增,再参与运算
- 避免在同一个表达式中对同一变量多次修改,否则代码可读性差且易出错










