写出下面一段代码的执行结果, 并说明原因:
public static void main(String[] args){
   int x = 0;
   int y = (x=2) * (x++);
   System.out.print(x);
   System.out.print(y);
}

解决方案 »

  1.   

    y=(x=2)*(x++)=2*2=4
    x=3
    故输出43
      

  2.   

    是输出34
    原因:
    x++是先运算在+1 所以执行到int y = (x=2) * (x++);x=2,y=2*2=4;
    执行这之后x+1 所以输出34
      

  3.   

     不管程序有多复杂,bug模式定能解决
      

  4.   

    java的“=”在进行赋值之后会有一个return返回值
    (x=2) return 结果是个2
      

  5.   

    这样解释比较合适:
    int x = 0;//x入栈 此时x为0
    int y = (x=2) * (x++);//(x=2)x出栈为0,x赋值为2入栈此时x为2;(x++)x出栈参与运算即2*2,然后+1入栈
    System.out.print(x);//x=3
    System.out.print(y);//y=2*2