关于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