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

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



想问一下这三个有什么区别 是怎样进行先后运算的啊?


Teresa_w
浏览 1461回答 4
4回答

蓝色星愿

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

安静_天空

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

rookie2maven

老生常谈了,++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);

最近喜欢看海贼王

这个其实问题就在 ++a 和 a++上了 b=++a 先+后赋值 b=a++就是先复制后+  其实没那么多先后运算 你把这个搞清楚就行了 这问题都老掉牙了一搜一大堆
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java