C语言基础入门48篇_16_switch分支语句(switch(表达式){}、按照表达式决定运行的块、break用于跳出switch后的块作用域、多个case写到一块、switch后只能接整型表达式)

本文详细介绍了C++中switch分支语句的语法、作用及常见用法,包括基本结构、break语句的作用、多case合并执行以及与if语句的比较。通过实例展示了如何在不同情况下使用switch,并分析了两者的效率差异。
摘要由CSDN通过智能技术生成

1.switch分支语句的基本语法

switch(表达式)
{
    case 常量1:
        语句块1
        break;
    case 常量2:
        语句块2
        break;
    ...
    case 常量n:
        语句块n
        break;
    default:
        默认语句块
}

switch后接的表达式的值,如果匹配之后的case常量,则跳转到对应的语句块并执行。如果全部case都不匹配,则跳转到default中的语句块执行。

简单例子:

#include <stdio.h>

int main(int argc, char* argv[])
{
    int nValue = 0;
    scanf("%d", &nValue);
    switch (nValue)
    {
    case 0:
        printf("case 0\r\n");
        break;
    case 5:
        printf("case 5\r\n");
        break;
    case 7:
        printf("case 7\r\n");
        break;
    case 8:
        printf("case 8\r\n");
        break;
    case 10:
        printf("case 10\r\n");
        break;
    default:
        printf("没有case常量匹配,进入default流程\r\n");
        break;
    }
 return 0;
}

输入5之后的运算结果:
在这里插入图片描述

2.break的作用


break用于跳出当前作用域即所在的{}

如果各个语句块最后没有break的话,则流程不会跳出switch,而是按顺序执行之后的语句。

int main(int argc, char* argv[])
{
    int nValue = 0;
    scanf("%d", &nValue);
    switch (nValue)
    {
    case 0:
        printf("case 0\r\n");
        break;
    case 5:
        printf("case 5\r\n");
    case 7:
        printf("case 7\r\n");
    case 8:
        printf("case 8\r\n");
        break;
    case 10:
        printf("case 10\r\n");
        break;
    default:
        printf("没有case常量匹配,进入default流程\r\n");
        break;
    }
 return 0;
}

输入5之后的运行结果:
在这里插入图片描述

3.多个case写到一起的情况

我们可以将多个case写在一起,对应同一个语句块:

#include <stdio.h>

int main(int argc, char* argv[])
{
    char chValue = 0;
    scanf("%c", &chValue);
    switch (chValue)
    {
    case ' ':case ',':case ';':
        printf("空格、逗号、分号都算分隔符\r\n");
        break;
    default:
        printf("没有case常量匹配,进入default流程\r\n");
        break;
    }
 return 0;
}

输入后的运行结果:
在这里插入图片描述

4.switch与if两种分支语句的比较

  • if后可接任意表达式,但是switch后只能接整型表达式(或者能转换为整型的表达式)
  • switch更简洁,同等复杂度的情况下,编译后的效率,switch的效率一般不低于if

5.学习地址: switch分支语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

十月旧城

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

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

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

打赏作者

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

抵扣说明:

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

余额充值