自增运算符++,自减运算符–,对一个变量+1或-1
自增运算符,自减运算符,也叫”自操作运算符“
自操作数据类型
自增运算符与自减运算符,能作用于除了boolean之外的所有基本数据类型
在char类型使用时,在计算过程中会先转换为对应的ASCII,然后自增或自减,然后结果再换回字符。例如以下例子,证明char能使用自增自减运算符
char a = 'c';
System.out.println(a++); // d
System.out.println(a--); // c
先自增与后自增
以自增运算符为例,先自增与后自增在表达式中有不同的结果
int a = 10;
int b = 10;
int c = ++a;
int d = b++;
System.out.println(c); // 11
System.out.println(d); // 10
在自操作中,实际会被解释为2个语句,c=++a和d=b++实际被解释为
a = a+1; // a=11
c = a; // c=11
d = b; // d=10
b = b+1; // b=11
可以看到,是因为自增运算符的实际执行的顺序不同,导致表达式结果不同。
自增运算符优先级
自增运算符,是单操作数运算符,它的优先级最高
相对比+,-等二元操作数运算符,会先执行。
int a = 10;
int b = ++a + a++ + a - --a - a--;
// 12 11 + 11 + 12 - 11 - 11
System.out.println(a); // 10
System.out.println(b); // 12
在java的表达式中,算术表达式是从左到右执行的,上面的例子就可以验证
int a = 10;
int b = ++a + a++ + a - --a - a--;
// 12 11 + 11 + 12 - 11 - 11 从左到右
// 8 10 + 8 +8 - 8- 10 从右到左
System.out.println(a); // 10
System.out.println(b); // 12