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()里面的判斷內容也成立了,也是不會被執行的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM