關於if與else以及else if的一個注意點


今天偶然發現的一個盲點:

對於一個if語句,多個else if語句,只要第一個if條件成立,以下的else if語句或是else語句都不會再執行(不管滿足或是不滿足);

而對於多個if語句,語句最后的else語句是會執行的(不管前面的if語句是否滿足)else只會與最近的if相匹配。

這里給出一段代碼

#include <stdio.h>
int main()
{
    int i=2;
    if(i!=1)  printf("0");
    if(i==1)  printf("0");
    else printf("0");
 } 

按照我之前的想法,兩個if條件符合第一個,肯定只會輸出一個0,但是實際結果輸出的是兩個0。

原因在於,else只會與最近的if匹配,也是與判斷i==1的那個if匹配,如果這個if不成立,那么會打印一個0,而第一個if條件已經打印了一個0,故總共打印了2個0.

else if比較好理解,這里不再贅述。


免責聲明!

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



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