写出下面一段代码的执行结果, 并说明原因:
public static void main(String[] args){
int x = 0;
int y = (x=2) * (x++);
System.out.print(x);
System.out.print(y);
}
public static void main(String[] args){
int x = 0;
int y = (x=2) * (x++);
System.out.print(x);
System.out.print(y);
}
x=3
故输出43
原因:
x++是先运算在+1 所以执行到int y = (x=2) * (x++);x=2,y=2*2=4;
执行这之后x+1 所以输出34
(x=2) return 结果是个2
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