约 1922 字

约 10 分钟

#C 语言的 switch 分支语句

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

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

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。

值1

break

值2

break

值n

break

其它值

break

开始

表达式

分支1

结束

分支2

分支n

分支n+1

示例:

#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/6/30

作者: PlanC

创建: 2025/6/30