有关else与if的配对及第一个if是怎么执行

img


所以这个else和第二个if配对,那程序是怎么执行的呢,会不会执行第一个if

如果 a<b成立 就去执行 if(b<c) 如果b<c不成立就执行else
如果a<b不成立直接结束
代码里对执行有问题都可以写一段试一试

#include<stdio.h>
int main(){
    int a=1,b=3,c=2;//先测b=2 c=3  会输出1   然后测 b=3 c=2 会输出3 
    if(a<b)
        if(b<c)
            c=a;
    else
        c=b;
    printf("%d",c);
    return 0;
}


会执行啊,不就是先判断a<b,再判断b<c吗

等价于

  if(a>b)
      {
            if(b<c)
            {
                  c=a;
            }else{
                  c=b;
            }
            
      }

else就近原则