A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

   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.jpgint x = 4;
int y = (x++)+(++x)+(x*10);  
求y值,
我这答案70来的有点想不明白,觉得是60 啊...

点评

int x = 4  发表于 2015-7-25 22:56

8 个回复

倒序浏览
应该是4+6+6*10
回复 使用道具 举报
X++,先运算再++,所以是4,
++X,先++再运算,因为前面已经++过了,所以现在x是5,++后是6
回复 使用道具 举报
首先()优先级最高  先算()里面的(x++)=4  x变成5 (++x)=6 x变成6  (x*10)=60  三个加一下 就是70
回复 使用道具 举报
x=4,(x++)先参与运算,也就是这一项是4,然后x变为5,接着到(++x),先自增,再参与运算,x变为6,这一项就是6,然后就是(6*10),所以结果是70
回复 使用道具 举报
好像不同语言对这个语句的结果都不同,java是表达式取值后,马上就自增,有的是表达式取值后,到整个语句执行完再自增
回复 使用道具 举报
x++是先参与运算,再自增;++x是先自增,再参与运算,所以(x++)中x是4,整体是4,但是执行自增后x变成了5,(++x)这里面的x是刚才的5,所以(++x)整体变成了6,x也变成了6,(x*10)=60,所以这个运算等价于:4+6+(6*10)=70
回复 使用道具 举报
只要清楚表达式的值和表达式里面变量的值是相区别的,这个题就知道了。三个括弧里面是三个表达式,x++这个表达式的值是x自增之前的值,++x这个个表达式的值是自增之后的值
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马