if语句的不理解if(x=0)y=4*x;这个执行条件成立的语句.由小到大输出3个整数.if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%d,%d,%d",a,b,c);为什么3个if都执行?上面只执行成立的if语句.

问题描述:

if语句的不理解
if(x=0)
y=4*x;
这个执行条件成立的语句.
由小到大输出3个整数.
if(a>b)
{t=a;a=b;b=t;}
if(a>c)
{t=a;a=c;c=t;}
if(b>c)
{t=b;b=c;c=t;}
printf("%d,%d,%d",a,b,c);
为什么3个if都执行?上面只执行成立的if语句.

其实两个代码里,每一条if语句都被执行了,只是成立了才会修改变量,不成立不会修改.上面的代码,两个if语句是互斥的关系,所以只有可能成立1个,所以在你看来就是只执行了成立的if语句.而下面的代码,a>b,a>c,b>c,三者时间...