为什么等于20 30 20

来源:百度知道 编辑:UC知道 时间:2024/06/26 00:25:55
int x y z
x=10
y=20
z=30
if(x>y)
z=x;
x=y;
y=z;

x y z=20 30 20

if语句没有大括号限制只执行其下方的一条语句即
if(x>y)满足条件下执行z=x
不满足条件不执行z=x语句
无论条件是否满足都按顺序继续执行
x=y
y=z

因为x=10>y=20为假
则不执行if后的第一个分号前的语句

所以执行x=y=20
y=z=30
所以x=20
y=30
z=30
你题目的答案是不是写错了~~~~

答案没问题吧?
if判断不成立,故z=x不执行,然后依次执行下两条,y值赋给x,z值赋给y,则结果应为20 30 30

因为你的if没有大括号,所以它的作用域只能是一行就是z=x这行。
由于x不打于y所以不执行z=x;但执行x=y,y=z;
所以x=20,y=30,z=30

if没有大括号,所以if语句后只执行一条:z=x;if条件不成立,所以那条语句就不执行了。而执行后面两条:所以结果为 x=20、 y=30、 z=30