国际访客建议访问 Primers 编程伙伴 国际版站点 > C 教程 > switch 分支语句 以获得更好的体验。

# C 语言的 switch 分支语句

分支语句(Branching Statement) 和条件语句类似,也用于控制程序的执行流程。

C 语言通过 switchcase 来创建分支语句。其基本语法如下:

switch (表达式)     // 表达式的结果必须是整型
{
case 值1:           // 当表达式的结果是 值1 时,执行 分支1
    分支1
    break;          // 跳出 switch

case 值2:           // 当表达式的结果是 值2 时,执行 分支2
    分支2
    break;          // 跳出 switch

...

case 值n:           // 当表达式的结果是 值n 时,执行 分支n
    分支n
    break;          // 跳出 switch

default:            // 当表达式的结果不符合任何分支条件时,执行 分支n+1
    分支n+1
    break;          // 跳出 switch
}

说明:

  • 如果“表达式”的结果为“值1”,则执行“分支1”

  • 如果“表达式”的结果为“值2”,则执行“分支1”

  • ...

  • 如果“表达式”的结果为“值n”,则执行“分支n”

  • 如果“表达式”的结果不符合任何分支条件,则执行“分支n+1”,即默认分支

注意:

  • switch 的表达式结果必须是整型

  • case 的值必须是整型字面量

  • 如果不使用 break 跳出 switch,则会向下执行后续分支,直至遇到 break

graph TD
    START([开始]) --> COND1{表达式} -- 值1 --> 分支1 -- break --> END([结束])
    COND1 -- 值2 --> 分支2 -- break --> END([结束])
    COND1 -- 值n --> 分支n -- break --> END([结束])
    COND1 -- 其它值 --> DEFAULT_BLOCK["分支n+1"] -- break --> END([结束])

示例:

#include <stdio.h>

int main(void) {
    printf("欢迎使用自动售货机!\n");
    printf("1. 可乐(3元)\n");
    printf("2. 雪碧(3元)\n");
    printf("3. 矿泉水(2元)\n");
    printf("4. 果汁(5元)\n");
    printf("5. 咖啡(6元)\n");
    
    int choice = 0;
    printf("请选择:");
    scanf("%d", &choice);

    switch (choice) {
        case 1:
            printf("您选择了:可乐,价格:3元\n");
            break;
        case 2:
            printf("您选择了:雪碧,价格:3元\n");
            break;
        case 3:
            printf("您选择了:矿泉水,价格:2元\n");
            break;
        case 4:
            printf("您选择了:果汁,价格:5元\n");
            break;
        case 5:
            printf("您选择了:咖啡,价格:6元\n");
            break;
        default:
            printf("无效的选择!\n");
    }

    return 0;
}

说明:

  • choice 的值是 4,因此进入 case 4: 的分支

运行结果:

欢迎使用自动售货机!
1. 可乐(3元)
2. 雪碧(3元)
3. 矿泉水(2元)
4. 果汁(5元)
5. 咖啡(6元)
请选择:4
您选择了:果汁,价格:5元
本文 更新于: 2025-11-27 09:38:05 创建于: 2025-11-27 09:38:05