黑马程序员技术交流社区
标题:
java基础运算问题,有点想不通透.求详解...
[打印本页]
作者:
梦想的种子
时间:
2015-7-25 22:55
标题:
java基础运算问题,有点想不通透.求详解...
file:///C:\Users\Administrator.2013-20150718VR\AppData\Roaming\Tencent\Users\562533329\QQ\WinTemp\RichOle\3_V45BB)53HWAJL1PQ5YS1T.jpgfile:///C:\Users\Administrator.2013-20150718VR\AppData\Roaming\Tencent\Users\562533329\QQ\WinTemp\RichOle\3_V45BB)53HWAJL1PQ5YS1T.jpgfile:///C:\Users\Administrator.2013-20150718VR\AppData\Roaming\Tencent\Users\562533329\QQ\WinTemp\RichOle\3_V45BB)53HWAJL1PQ5YS1T.jpgfile:///C:\Users\Administrator.2013-20150718VR\AppData\Roaming\Tencent\Users\562533329\QQ\WinTemp\RichOle\3_V45BB)53HWAJL1PQ5YS1T.jpgfile:///C:\Users\Administrator.2013-20150718VR\AppData\Roaming\Tencent\Users\562533329\QQ\WinTemp\RichOle\3_V45BB)53HWAJL1PQ5YS1T.jpg
int x = 4;
int y = (x++)+(++x)+(x*10);
求y值,
我这答案70来的有点想不明白,觉得是60 啊...
作者:
e咕噜
时间:
2015-7-25 23:06
应该是4+6+6*10
作者:
e咕噜
时间:
2015-7-25 23:08
X++,先运算再++,所以是4,
++X,先++再运算,因为前面已经++过了,所以现在x是5,++后是6
作者:
boboyuwu
时间:
2015-7-25 23:08
首先()优先级最高 先算()里面的(x++)=4 x变成5 (++x)=6 x变成6 (x*10)=60 三个加一下 就是70
作者:
longbao
时间:
2015-7-25 23:29
x=4,(x++)先参与运算,也就是这一项是4,然后x变为5,接着到(++x),先自增,再参与运算,x变为6,这一项就是6,然后就是(6*10),所以结果是70
作者:
真实姓名被注册
时间:
2015-7-25 23:36
好像不同语言对这个语句的结果都不同,java是表达式取值后,马上就自增,有的是表达式取值后,到整个语句执行完再自增
作者:
wayonEmes
时间:
2015-7-25 23:48
x++是先参与运算,再自增;++x是先自增,再参与运算,所以(x++)中x是4,整体是4,但是执行自增后x变成了5,(++x)这里面的x是刚才的5,所以(++x)整体变成了6,x也变成了6,(x*10)=60,所以这个运算等价于:4+6+(6*10)=70
作者:
a12366456
时间:
2015-7-25 23:57
只要清楚表达式的值和表达式里面变量的值是相区别的,这个题就知道了。三个括弧里面是三个表达式,x++这个表达式的值是x自增之前的值,++x这个个表达式的值是自增之后的值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2