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