a++与 ++a 都是在做自增运算,都是在 a 原有根底上 +1;
然而如果 a ++ 和 ++ a 再被应用的状况下,是有不同的状况呈现。
a++ 被应用时:先应用,再赋值
++a 被应用时:先赋值,再应用
1、未被应用时:a++,++b
int a = 5,b = 5;
a++;
++b;
System.out.println(a);//6
System.out.println(b);//6
2、被应用时:a++,++b
int a = 5,b = 5;
System.out.println(a++);//5
System.out.println(++b);//6
System.out.println(a);//6
System.out.println(b);//6
3、上面咱们再简单一些:
int a = 5,b = 5;
System.out.println(a++ + a);//11
System.out.println(++b + b);//12
4、上面咱们再加深下难度:
int a = 5,b = 5;
System.out.println(a++ + a++);//11
System.out.println(++b + ++b);//13
5、上面咱们再来变换下:
int a = 5,b = 5;
System.out.println(a++ + ++a);//12
System.out.println(++b + b++);//12
上述题你们是否做对了,我不可知?然而做没做对请咱们都持续往下看,上面会有针对性的分析这个问题,当然也会引出咱们一个新的问题 a=a++
6、b=a++
int a = 5,b;
b = a++;
System.out.println(b);
System.out.println(a);
咱们能够这么了解这个过程:
1、咱们取出 a 的值,放在一个长期变量里 — int temp = a;
2、将 a 的值 +1,a = a + 1;
3、将长期变量的值赋值给 b — int b = temp;
4、所以 a = 6,b = 5
7、b=++a
int a = 5,b;
b = ++a;
System.out.println(b);
System.out.println(a);
咱们能够这么了解这个过程:
1、将 a 的值 +1,a = a + 1;
2、将 a 的值赋值给 b — int b = a;
3、所以 a = 6,b = 6
7、a=a++
int a = 5;
a = a++;
System.out.println(a);
咱们能够这么了解这个过程:
1、咱们取出 a 的值,放在一个长期变量里 — int temp = a;(此时 a = 5,所以 temp 这个长期变量的值为 5)
2、将 a 的值 +1,a = a + 1;(此时 a = 6)
3、将长期变量的值赋值给 a — int a = temp;(因为长期变量 temp 的值为 5,此时 a = 5)
4、所以 a = 5
8、a=++a
int a = 5;
a = ++a;
System.out.println(a);
咱们能够这么了解这个过程:
1、将 a 的值 +1,a = a + 1;
2、将 a 自增之后的值赋值给 a — int a = a;
3、所以 a = 6