在java中存在算术运算符自加(++),自减(–)运算:
++:自加,就是在数值原来基础上进行+1操作,形似a = a + 1操作,但又不完全相等。
–:自减,就是在数值原来的基础上进行-1操作,形似a = a - 1操作,但也不完全相等。
自加自减可以放在变量的前方与后方。 放在操作数的前面,先自增或者自减,然后再参与运算。放在操作数的后面,先参与运算,再自增或者自减。
案例一:
class Demo2_Operator {
/*
* a:单独使用:
* 放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
* b:参与运算使用:
* 放在操作数的前面,先自增或者自减,然后再参与运算。
* 放在操作数的后面,先参与运算,再自增或者自减。
*/
public static void main(String[] args) {
//单独使用
/*int a = 3;
//a++; //a = a + 1;
++a; //a = a + 1;
System.out.println(a);*/
//参与运算使用
int a = 3;
int b;
b = a++; //当++在变量后面的时候,会先将变量中的值取出做赋值操 作,然后再自身加1
System.out.println("a = " + a);//输出结果为a = 4
System.out.println("b = " + b);//输出结果为b = 3
b = ++a; //当++在变量前面的时候,会先自身加1,然后在将结果赋值
System.out.println("a = " + a);//输出结果为a = 5
System.out.println("b = " + b);//输出结果为b = 5
}
}
案例二:
public static void main(String[] args) {
int x = 4;
// 4 6 6
int y = (x++)+(++x)+(x*10);
//第一个x为4的原因是,++在后,先赋予该位置值后对x进行++操作
//第二个x为6的原因是,第一个++后为5,位置二++在前,先进行++操作,后为该位置赋值
//第三个位置的x显而易见就是6了
System.out.println("x = " + x);//输出为:x = 6
System.out.println("y = " + y);//输出为:y = 70
}
且需要注意的是++,–操作自带强制转换效果
public static void main(String[] args) {
byte a = 127;//byte的范围是-128~127
a++;//等同于a = (byte)a+1;
System.out.println(a);//输出为-128(若不懂为何输出是-128请见java之原反补)
}