黑马程序员技术交流社区
标题:
关于运算符的问题?
[打印本页]
作者:
ziqingjie
时间:
2015-4-16 08:48
标题:
关于运算符的问题?
int a=12;
int b=(++a)+(a--)+(a++);
System.out.println(a);
System.out.println(b);
int a=12;
int b=(a++)+(a--)+(a++);
System.out.println(a);
System.out.println(b);
为什么前后两个b的值不一样?求知道的大神讲解下
作者:
Anfinsenh
时间:
2015-4-16 08:58
++a是自加1后运算,a++是运算结束后自加给自己赋值,第一个:b=13+13+12,第二个:b=12+12+12
作者:
396460221
时间:
2015-4-16 09:00
++a在前,是a先自增1后再参与运算,a++在后,是a先参与运算之后再自增1.
作者:
Wilsoncyf
时间:
2015-4-16 09:11
答案是: 13
38
13
37吧,
关键是要理解这个 ++a 和 a++ 的运算顺序, ++a 是把 a加1后,再使用a的值,而a++,则是先使用a的值,再把a加一
作者:
黑马小符
时间:
2015-4-16 09:14
也就是说第一的++a,是自增1后((++a)+1)=13,在回到int b=(++a)+(a--)+(a++)l里做运算,所以int b=13+13+12,第二a++,是先在int b=(a++)+(a--)+(a++)里做运算,运算完后的值赋给了b,自后在回来自增1,也就是int b=12+12+12。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2