int x=5;执行x+=x++ +(x++)后x是多少?为什么?

来源:百度知道 编辑:UC知道 时间:2024/05/12 16:55:49
这是java中的一道题。我记得在C中应该先执行括号中的x++。x变成6,x++是5。然后执行括号外面的x++,此时x是6,执行后x变成7,x++是6。x++ +(x++)就是6+5=11。最后x+=11,即是7+11=18.但是结果不是,为什么?
java中x++表达式好像是等所有运算结束了x才自加,那样应该是15啊~~也不对,为什么??费解啊~~高手解释下~~
不是应该先算括号里面的吗?算完括号里面的x值不就变过了吗?那x+(x++)+(x++)中第一个x值不就变了吗?

x+=x++ +(x++)的操作实际上就是

x=x+(x++)+(x++) (后缀的++操作,如楼主所说)

于是x=5+5+6=16

===========补充的分割线===========

怎么会先算括号中的...加法是从左到右的.运算符优先级是()与+同时需要判断的时候优先级高的先执行而已..

1L正解