JAVA-算数运算符-自增、自减
- 自增(++)
&前自增(++i):先运算,再赋值。
&后自增(i++):先赋值,再运算。
注意:这里的运算的对象只能是变量,而不能是常量,否则会引发编译错误,且每次运算对 应变量的值会增加1。
现在,来看一个实例:
如下图所示,定义了三个整形的变量,分别命名为i,a,b,并对i进行了初始化,给其赋值为1。
public static void main(String[] args){
int i = 1;
int a, b;
a = i++;
b = ++i;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("i = " + i);
}
a = i++:先把i的值赋值给a,此时a = 1,然后再对i进行一次运算,得到i = 2
b = ++i: 先运算,得到i = 3,再把i此时的值赋值给b,b = 3
因此,a、b、i的最终结果分别为:1、3、3。
a = 1
b = 3
i = 3
接下来,加上一条表示式:i = i++,让我们来看看结果是什么样的。
public static void main(String[] args){
int i = 1;
int a, b;
i = i++;
a = i++;
b = ++i;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("i = " + i);
}
i = i++:先赋值再运算,赋值得:i = 1, 运算后:i = 2
此时的i的取值为i = 1
a = i++;先赋值再运算,赋值得:a = 1,运算得 i = 2
b = ++i:先运算再赋值,运算得:i = 3,赋值后:b = 3
最终结果:a = 1, b = 3, i = 3。
a = 1
b = 3
i = 3
现在看看 i = ++i 的情况:
public static void main(String[] args){
int i = 1;
int a, b;
i = ++i;
a = i++;
b = ++i;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("i = " + i);
}
i = ++i:先运算再赋值,运算后得:i = 2, 取值:i = 2
a = i++:先赋值再运算,赋值得: a = 2, 运算后:i = 3
b = ++i:先运算再赋值,运算后:i = 4,赋值后:b = 4
最终结果如下图所示:
a = 2
b = 4
i = 4
- 自减(--)
&前自减(--i):先运算,再赋值。
&后自减(i--):先赋值,再运算。
自减与自加的运算方式一致,这里就不再赘述了。