小白菜鸡提问!这个不理解if条件有啥意义

img


这不是不符合if里面a<b的条件吗,为什么答案输出是4,0呢?
是答案错了吗😭

因为if后面没有花括号
if后面没有花括号的话属于这个if判断的只能有一个表达式
a=b;b=t;
这两个不属于if判断里的内容,依旧会执行,所以最终输出4,0。
有帮助的话采纳一下哦!

if后面没有大括号,所以if只管第一个赋值语句,不满足条件也要执行后面两个赋值语句。

if之后没有大括号,所以只包含第一个式子(t = a),之后跳出来,继续执行下面的
写好的话看得清楚,这是个迷惑选项

void main()
{
    int a = 5, b = 4, t = 0;
    if (a < b)     //不满足条件,跳出if语句
        t = a;       //不执行
    a = b;        //    到这里开始执行    将b赋值给a  a = 4
    b = t;                             //将 t赋值给b     b = 0
    printf("%d,%d\n", a, b);      // 打印 4,0
    return 0;
}