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

很多人都说分不清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匹配。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值