a++++a都是在做自增运算,都是在a原有根底上+1;
然而如果a++和++a再被应用的状况下,是有不同的状况呈现。

a++ 被应用时:先应用,再赋值
++a 被应用时:先赋值,再应用

1、未被应用时:a++,++b

int a = 5,b = 5;a++;++b;System.out.println(a);//6System.out.println(b);//6

2、被应用时:a++,++b

int a = 5,b = 5;System.out.println(a++);//5System.out.println(++b);//6System.out.println(a);//6System.out.println(b);//6

3、上面咱们再简单一些:

int a = 5,b = 5;System.out.println(a++ + a);//11System.out.println(++b + b);//12

4、上面咱们再加深下难度:

int a = 5,b = 5;System.out.println(a++ + a++);//11System.out.println(++b + ++b);//13

5、上面咱们再来变换下:

int a = 5,b = 5;System.out.println(a++ + ++a);//12System.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