Java高手请进!!!

来源:百度知道 编辑:UC知道 时间:2024/05/15 12:23:48
为什么
int x=10;
x=++x;

而x还是等于10;能来个高手指点迷津吗?谢谢了!!
请尽量说详细点,把程序内部的运做说下,谢谢了!!

这是初学者很容易迷惑的地方.
你这个写法虽然不会报错,但是不规范.
变量x没有结果,运行出来应该是11而不是10.
若改成x=x++; 运行出来才是10.
为什么呢?
当你写成x=++x;时,实际上是x先++,再把x++附值给x,最终x==11;
当你写成x=x++;时,实际上先执行的是x附值给x,再把x++,不过最后返回的x值是x++前的x,所以x==10;
一般来说写成++x或x++就行了,加个x=会使人迷惑.