搜索
C 教程 / Switch

Switch

Switch 语句

与其编写多个 if...else 语句,不如使用 switch 语句。

switch 语句可以选择要执行的多个代码块之一:

语法

switch (expression) {
  case x:
    // 代码块
    break;
  case y:
    // 代码块
    break;
  default:
    // 代码块
}

工作原理:

  • switch 表达式被评估一次。
  • 表达式的值与每个 case 的值进行比较。
  • 如果匹配,则执行相关联的代码块。
  • break 语句跳出 switch 块并停止执行。
  • default 语句是可选的,并指定在没有 case 匹配时要运行的代码。

下面的示例使用工作日编号来计算工作日名称:

实例

int day = 4;

switch (day) {
  case 1:
    printf("Monday");
    break;
  case 2:
    printf("Tuesday");
    break;
  case 3:
    printf("Wednesday");
    break;
  case 4:
    printf("Thursday");
    break;
  case 5:
    printf("Friday");
    break;
  case 6:
    printf("Saturday");
    break;
  case 7:
    printf("Sunday");
    break;
}

// 输出 "Thursday" (day 4)
运行实例 »

点击 "运行实例" 按钮查看在线实例

break 关键字

当 C 语言遇到 break 关键字时,它会跳出 switch 块。

这将停止在块内执行更多代码和 case 测试。

找到匹配项并完成工作后,就该进行中断了。无需进行更多测试。

break 可以节省大量执行时间,因为它会“忽略” switch 块中其余所有代码的执行。

default 关键字

default 关键字指定在没有 case 匹配时要运行的代码:

实例

int day = 4;

switch (day) {
  case 6:
    printf("Today is Saturday");
    break;
  case 7:
    printf("Today is Sunday");
    break;
  default:
    printf("Looking forward to the Weekend");
}

// 输出 "Looking forward to the Weekend"
运行实例 »

点击 "运行实例" 按钮查看在线实例

注意:default 关键字必须作为 switch 中的最后一条语句使用,并且不需要 break