日期:2014-05-20  浏览次数:20623 次

Java 自加运算问题
public class Test{
public static void main(String[] arg){
int x,y,j;
x=0;
j=0;
x=j++;
System.out.println(x);
y=j;
System.out.println(y);
}
}
输出结果为:0 1


public class Test{
public static void main(String[] arg){
int x,y;
x=0;
x=x++;
System.out.println(x);
y=x;
System.out.println(y);
}
}
输出结果为:0 0

为什么呢?
------最佳解决方案--------------------
因为 x=x++; 可以分解为三个动作:
1、计算右等式的结果,即:0
2、完成 x++ 运算,即 x ==> 1
3、完成赋值表达式: x = 0 
------其他解决方案--------------------
http://www.ticmy.com/?p=43
------其他解决方案--------------------
 
x=x++;
这句话是先把x的值赋给x,然后x自身++,所以这是x=0,
如果是x=(++x);这是先x自身++,然后把x的值赋给x所以此时x=1
------其他解决方案--------------------
谢谢各位的解答,我似乎有点明白了