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