switch在c语言中怎么用

来源:个人站长作者:Canve头衔:草根站长
导读:本期聚焦于小伙伴创作的《switch在c语言中怎么用》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《switch在c语言中怎么用》有用,将其分享出去将是对创作者最好的鼓励。

switch语句是C语言中用于实现多分支选择的重要控制结构,能够根据表达式的不同取值执行对应的代码分支,相比多个if-else嵌套的写法,逻辑更清晰,代码可读性更高。

switch在c语言中怎么用

switch语句的基本语法

switch语句的核心结构由switch关键字、判断表达式、case分支、break语句和可选的default分支组成,基本语法格式如下:

switch(表达式) {
    case 常量1:
        // 表达式等于常量1时执行的代码
        break;
    case 常量2:
        // 表达式等于常量2时执行的代码
        break;
    // 可以有多个case分支
    default:
        // 表达式不匹配任何case常量时执行的代码
        break;
}

需要注意,switch后面的表达式结果必须是整型或者可以隐式转换为整型的类型,比如char、int、short、long等,浮点型和字符串类型不能作为switch的表达式。

各组成部分的作用

case关键字

case后面跟随的是常量表达式,当switch的表达式结果和case后的常量相等时,程序会从该case分支开始执行。case后的常量值不能重复,否则会出现编译错误。

break关键字

break的作用是跳出整个switch语句,如果某个case分支末尾没有写break,程序会继续执行下一个case分支的代码,这种现象叫做case穿透。比如下面的代码:

#include <stdio.h>

int main() {
    int num = 1;
    switch(num) {
        case 1:
            printf("num是1n");
        case 2:
            printf("num是2n");
            break;
        default:
            printf("num不是1也不是2n");
            break;
    }
    return 0;
}

这段代码的输出会是:

num是1
num是2

因为case 1分支没有break,所以执行完case 1的代码后会继续执行case 2的代码,直到遇到break才跳出switch。

default关键字

default分支是可选的,当switch的表达式结果不匹配任何case后的常量时,会执行default分支的代码。如果不需要处理不匹配的情况,也可以省略default分支。

使用示例

下面通过一个成绩等级判断的例子展示switch的实际用法,规则是90分及以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E:

#include <stdio.h>

int main() {
    int score;
    printf("请输入成绩:");
    scanf("%d", &score);
    // 计算成绩对应的十位数字,用于switch判断
    int level = score / 10;
    switch(level) {
        case 10:
        case 9:
            printf("等级为An");
            break;
        case 8:
            printf("等级为Bn");
            break;
        case 7:
            printf("等级为Cn");
            break;
        case 6:
            printf("等级为Dn");
            break;
        default:
            printf("等级为En");
            break;
    }
    return 0;
}

这里利用了case穿透的特性,当level是10或者9的时候都会执行输出等级为A的代码,不需要重复写两次相同的逻辑。

使用注意事项

  • case后面必须是常量,不能是变量或者表达式,比如case num:这种写法是错误的。
  • switch表达式的类型必须是整型兼容类型,不能用float、double或者字符串。
  • 如果不需要case穿透的效果,每个case分支末尾都要加break,避免逻辑错误。
  • default分支可以放在switch内部的任意位置,通常放在所有case分支的最后,但是放在其他位置也不影响逻辑,只是可读性会稍差。

switchcasebreakdefault修改时间:2026-06-25 16:24:17

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。