if-else与if-esle if...的详解

来源:互联网 发布:按键精灵文字输出源码 编辑:程序博客网 时间:2024/06/02 17:34

很多人都说分不清if-else和if-else if-else if…的区别。

下面我将详细的讲解这种语句的用法,简单的if语句我就不说了。
先说个if-else的:

代码:

#include <stdio.h>int main(){    int val;    scanf("%d",  &val);    if (val > 8)        printf("a\n");    else        printf("b\n");    return 0;}

运行结果:

加上个else if
代码:

#include <stdio.h>int main(){    int val;    scanf("%d",  &val);    if (val > 8)        printf("a\n");    else if (val > 20)        printf("b\n");    return 0;}


为什么输入9跟30的结果都一样呢?原因是在if –elseif….语句中只要第一个if条件成立或者第一个else if语句成立,后面的else if即使满足else if的条件也不会执行else if及else的内容。而如果是多个if的话,最后的else会执行的。

再说一下在使用if else中容易忽略的问题,就是始终记住else会与最近的if匹配。
代码:

#include <stdio.h>int main(){    int val;    scanf("%d",  &val);    if(val > 2)     {        if(val < 8)        printf("a");    }    else     {        printf("b");    }    return 0;}运行结果:



我们可以看到,输入10时是没有打印出b的,因为它执行了if语句。

代码:

#include <stdio.h>int main(){    int val;    scanf("%d",  &val);    if(val > 2)     {        if(val < 8)        printf("a");        else         printf("b");    }       return 0;}

运行结果:


这里的10是输出b的,我们可以通过这两个代码看出这个去区别,就是else始终会与最近的if匹配。

0 0