作业帮 > 综合 > 作业

if语句的不理解if(x=0)y=4*x;这个执行条件成立的语句.由小到大输出3个整数.if(a>b){t=a;a=b;

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/11 14:45:13
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,三者时间没有互斥关系,所以都会做判断的.如果成立,就会交换值.
是否执行过,可以通过debug的方式来单步跟踪调试,这样会看的很清楚.
如果你希望几个if语句互斥的话,可以采用if...else的结构.这样只可能执行一个if,只要if成功,就不会处理else.