第六节 分支语句 (switch部分)

目录

6.1 if语句 与 switch 语句对比 

6.2 switch 语句中的break  

6.3 switch 语句中的default

6.4 switch语句中的case和default的顺序问题

在前一节中我们学习了分支语句中if语句的相关知识第六节 分支语句(if 部分)-CSDN博客,下面将开始分支语句中switch语句的相关学习

 switch 语句是⼀种特殊形式的 if...else 结构,⽤于判断条件有多个结果的情况。它把多重

else if 改成更易⽤、可读性更好的形式

switch语句的写法

switch(expression)
{
    case value1:statement
    case value2:statement
    default:statement

}
上⾯代码中,根据表达式 expression 不同的值,执⾏相应的 case 分⽀。如果找不到对应的值,
就执⾏ default 分⽀。
注:
• switch 后的 expression 必须是整型表达式
• case 后的值,必须是整形常量表达式

6.1 if语句 与 switch 语句对比 

现在我们已经了解到了 if 和 switch语句的基本用法,现在我们做一组练习,将 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;
}
上述的代码中,需要注意2点
1. case 和后边的数字之间必须有空格
2. 每⼀个 case 语句中的代码执⾏完成后,需要加上 break ,才能跳出这个switch语句。

6.2 switch 语句中的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 语句都得有,要根据实际情况来看。

6.3 switch 语句中的default

在使⽤ switch 语句的时候,我们经常可能遇到⼀种情况,⽐如 switch 后的表达式中的值⽆法匹
配代码中的 case 语句的时候,这时候要不就不做处理,要不就得在 switch 语句中加⼊
default ⼦句。
switch (expression) {
    case value1: statement
    case value2: statement
    default: statement
}
switch 后边的 expression 的结果不是 value1 ,也不是 value2 的时候,就会执⾏
default ⼦句

6.4 switch语句中的case和default的顺序问题

switch 语句中 case ⼦句和 default ⼦句有要求顺序吗? default 只能放在最后吗?
其实, 在 switch 语句中 case 语句和 default 语句是没有顺序要求的,只要你的顺序是满⾜实
际需求的就可以
只不过我们通常是把 default ⼦句放在最后处理的。
  • 20
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值