a++和++a;a+=和a=a+1的区别

  • Post author:
  • Post category:其他


a++和++a的区别

看谁在前面,符号在前面,先自增,然后用自增的值和接下来的值做运算

​ 变量在前面,先用变量的值和其他的值做运算,然后再让他自增

a–,和–a同上

a++: 先取值,再自增

int a=18;

System.out.println(2+a++);//20

这里已经取值,得到值就不会执行后边的++

第一步执行:18+2=20

第二步执行:a=18+1

System.out.println(a);//19

++a(先自增再取值)

int a=18;

System.out.println(2+(++a));//21

这里先取值,取值过后才赋值

第一步执行:a=18+1//a此时为19

第二步执行:2+19

System.out.println(a);//19

单独使用时,功能一模一样,都是让a的值增加1;

不同的是与赋值号“=”一起使用时,y=++a表示先将a的值增加1后,再把值赋给y;

而,y=a++表示先把a的值给y,a自己再增加1.

“==”不是赋值

int a =1;

int c =a++;

a=1;

int d=++a;

c 等于1,d等于2。

a=a+1;其实是一种错误写法,不能通过编译,因为高转低没有做强制类型转换

a+=1;是可以通过编译的,由java底层来完成操作【就是a+1=】



版权声明:本文为weixin_45980070原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。