C Switch


Switch 语句

而不是写作许多if..else语句,您可以使用switch陈述。

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

语法

switch( expression) {
  case x:
    // code block
    break;
  case y:
    // code block
    break;
  default:
    // code block
}

它是这样工作的:

  • 这个switch表达式计算一次
  • 将表达式的值与每个值进行比较case
  • 如果存在匹配,则执行关联的代码块
  • 这个break语句跳出 switch 块并停止执行
  • 这个default语句是可选的,并指定在没有大小写匹配时运行的一些代码

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

示例

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;
}

// Outputs "Thursday" (day 4)
亲自试一试 »

中断关键字

当C达到abreak关键字,它突破了 switch 块。

这将停止块内更多代码和案例测试的执行。

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

中断可以节省大量执行时间,因为它 "ignores" switch 块中所有其余代码的执行。



默认关键字

这个default关键字指定在没有大小写匹配的情况下运行的一些代码:

示例

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");
}

// Outputs "Looking forward to the Weekend"
亲自试一试 »

笔记:default关键字必须用作switch中的最后一条语句,并且不需要break。


C 练习

通过练习测试一下

练习:

插入缺少的部分以完成以下 switch 语句:

int day = 2;
switch () {
 1:
    printf("Monday");
    ;
 2:
    printf("Sunday");
    ;
}

开始练习