关于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比较好理解,这里不再赘述。
人生如逆旅,我亦是行人