请问输出结果是什么?

img

这段代码的考核点是
if(x==y) t=x;x=y;y=t;
初看以为是当x和y相等的时候i,交换x和y的值。但这题出的也有点变态啊,如果x和y相等,你交换个鸟啊。出题的也头脑不清醒,怎么的也得改成if(x!=y)吧。大意了
但如果要交换x和y,那么后面的三句必须在if的代码块中,就需要加大括号才行,如if(x==y){ t=x;x=y;y=t;}
如果没有大括号,那么实际只有t=x是if的代码块。
由于x和y不相等,所以t=x不会执行。实际执行后面两句,x=y使得x也等于20,y=t使得y变成0
最终输出x和y的值分别为20,0
希望对你有所帮助

if (x==y) t = x; //因为if语句后面没有{},if语句的代码块只包括t=x这一句,条件不成立,t=x这一句不执行,所以t的值还是0
x = y; //x = 20,y=20;
y=t; //y=t=0;
所以结果是20,0