为了账号安全,请及时绑定邮箱和手机立即绑定

关于算术运算的优先级问题

关于算术运算的优先级问题

Teresa_w 2016-03-30 10:50:04
int a,b; a=5; b=25; System.out.println(++a+"+"+b+(a++)+b); //结果是6+25625 System.out.println(++a+"+"+b+(++a)+b); //结果是6+25725 System.out.println(++a+"+"+b+++a+b);  //结果是6+25626想问一下这三个有什么区别 是怎样进行先后运算的啊?
查看完整描述

4 回答

?
蓝色星愿

TA贡献1条经验 获得超0个赞

++a就是先自增1后运算,a++先运算后自增1

查看完整回答
反对 回复 2016-03-31
?
安静_天空

TA贡献11条经验 获得超3个赞

关于”++“的问题,只要运算符在变量前面,就先运算后赋值;如果在后面,就先赋值后运算~

查看完整回答
反对 回复 2016-03-31
?
rookie2maven

TA贡献278条经验 获得超76个赞

老生常谈了,++a,a的值即刻改变,a++是先存储在临时变量temp中,临时变量再将值赋给a。第一个++a, a=6; b=25,
字符串连接,结果256250;第二个++a两次所以a=7,结果为25725;  第三个++a,a=6,temp=(b+1),b=25,b=temp=(b+1);


查看完整回答
反对 回复 2016-03-31
?
最近喜欢看海贼王

TA贡献6条经验 获得超5个赞

这个其实问题就在 ++a 和 a++上了 b=++a 先+后赋值 b=a++就是先复制后+  其实没那么多先后运算 你把这个搞清楚就行了 这问题都老掉牙了一搜一大堆

查看完整回答
反对 回复 2016-03-30
  • Teresa_w
    Teresa_w
    谢了,可是(++a)+7 和没有()的++a=6 我不能理解
  • 4 回答
  • 1 关注
  • 1456 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信