C语言中的if与else if

今天发现一个比较不理解的代码,是关于else if这个判断语句的代码。代码如下

#include<stdio.h>

int a = 2;

int main(void)
{
    if(a == 1)
    {
        printf("执行的是if(a == 1)\n");
    }
    else if(a != 0)
    {
        printf("执行的是else if(a != 0)\n");
    }
    
    return 0;
}

看着很简单的样子,其实细看会发现,当a = 1的时候满足的是第一个条件if(a == 1),但是同时也满足else if(a != 0)这个条件,程序是否会同时执行两个程序块里面的内容呢?经过测试当a = 1的时候,打印出来的也只会是printf("执行的是if(a == 1)\n");也就是说是第一个程序块里面的内容被执行了,第二个程序块里面的else if(a != 0)虽然也是满足条件的但是没有被执行。这说明在这个if ()———else if()这个结构里面,只会执行其中的一个。如果第一个判断里面的成立了,那么即使else if()里面的判断内容也成立了,也是不会被执行的。

猜你喜欢

转载自www.cnblogs.com/xing-ting/p/10290845.html