[置顶] if语句的陷阱


if else if是只要有满足条件的,就不再对之后的else if进行判断

#include<stdio.h>

void main()
{
    char a=0;
    if(a==0)
    {
        a=1;
        printf("00000000\n");
    }
    else if(a==1)
    {
        a=0;
        printf("11111111\n");
    }
}


输出结果是:

00000000

---------------------------------------------------------------------

多个if else语句

if else 语句也可以多个同时使用,构成多个分支,形式如下:

if(判断条件1){
    语句块1
} else  if(判断条件2){
    语句块2
}else  if(判断条件3){
    语句块3
}else  if(判断条件m){
    语句块m
}else{
     语句块n
}

意思是,从上到下依次检测判断条件,当某个判断条件成立时,则执行其对应的语句块,然后跳到整个 if else 语句之外继续执行其他代码。如果所有判断条件都不成立,则执行语句块n,然后继续执行后续代码。

也就是说,一旦遇到能够成立的判断条件,则不再执行其他的语句块,所以最终只能有一个语句块被执行。
posted @ 2017-06-29 14:06  隔壁王叔叔a  阅读(131)  评论(0编辑  收藏  举报