求分析一下“x++ + ++x”
请问下列代码为什么会输出4?我感觉应该是3吧?x++不是该在输出语句之后才执行自增1的吗?
请分析一下执行过程,谢谢!
Java code
int x = 1;
System.out.println(x++ + ++x);
------解决方案--------------------这个问题,也算是月月有啊。。。
int x = 1;
System.out.println(x++ + ++x);
解释下就是:
System.out.println(1 + 3);
推荐下写的相当好的扫盲贴:http://www.ticmy.com/?p=43
------解决方案--------------------++ 的优先级比 + 的优先高。所以,先算++ , 再算 +
i++ 是,将i进行++,而参于运算的是执行++以前的i值。
++i 是,将i进行++,而让执行++以后的i值,参于运算。
x++ + ++x的执行顺序是这样的:
1.x++:执行后,x = 2
2.++x:执行后,x = 3
3. + 运算:x++之前的x值为1;++i后,值为3;就是1+3
------解决方案--------------------x++ 是先取值再+1 这里x=1
之后+1 x=2
++x 是先+1再取值 这里是x=2+1=3
那么x++ + ++x,即为 1 + 3输出应该是4