C语言学习(第十二天)

4.1 if语句和switch语句的对比

练习:输入任意一个整数值,计算除3之后的余数
如果使用if语句完成,如下:

#include <stdio.h>
int main()
{
        int n = 0;
        scanf("%d", &n);
        if(n%3 == 0)
                printf("整除,余数为0\n");
        else if(n%3 == 1)
                printf("余数是1\n");
        else
                printf("余数是2\n");
        return 0;
}

如果使用switch语句改写,就可以是这样的:

#include <stdio.h>
int main()
{
        int n = 0;
        scanf("%d", &n);
        switch(n%3)

        {
        case 0:
                printf("整除,余数为0\n");
                break;
        case 1:
                printf("余数是1\n");
                break;
        case 2:
                printf("余数是2\n");
                break;
        }
        return 0;
}

上述的代码中,我们要注意的点有:
1. case 和后边的数字之间必须有空格
2. 每一个case 语句中的代码执行完成后,需要加上break ,才能跳出这个switch语句。

4.2 switch语句中的break
前面的代码中,如果我们去掉case语句中的break,会出现什么情况呢?

#include <stdio.h>
int main()
{
        int n = 0;
        scanf("%d", &n);
        switch(n%3)
        {
        case 0:
                printf("整除,余数为0\n");
        case 1:
                printf("余数是1\n");
        case 2:
                printf("余数是2\n");
        }
        return 0;
}

测试一组,看一下结果:

 我们发现,7除以3本来余数是1,但是我们发现程序运行的结果多了一行“余数是2”的打印。

这是为什么呢?
原因是switch 语句也是分支效果的,只有在switch 语句中使用 break 才能在跳出switch 语
句,如果某一个case 语句的后边没有break 语句,代码会继续玩下执行,有可能执行其他case
语句中的代码,直到遇到break 语句或者switch 语句结束。就比如上面的代码就执行了case
2 中的语句。
所以在switch 语句中break 语句是非常重要的,能实现真正的分支效果。
当然, break 也不是每个case 语句都得有,这就得根据实际情况来看了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顶配

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值