C 语言 Switch 语句

Switch 语句

如果需要写 很多if..else 语句时,您可以使用 switch 语句替代。

switch 语句会从多个代码块中选择一个执行:

语法
  1. switch(expression) {
  2. case x:
  3. // code block
  4. break;
  5. case y:
  6. // code block
  7. break;
  8. default:
  9. // code block
  10. }

以下就是它的工作原理:

  • switch 表达式计算一次。
  • 将表达式的值与每种情况的值进行比较。
  • 如果存在匹配项,则执行关联的代码块。
  • break 和 default 关键字是可选的,将在本章后面介绍

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

实例
  1. #include <stdio.h>
  2. int main() {
  3. int day = 4;
  4. switch (day) {
  5. case 1:
  6. printf("Monday");
  7. break;
  8. case 2:
  9. printf("Tuesday");
  10. break;
  11. case 3:
  12. printf("Wednesday");
  13. break;
  14. case 4:
  15. printf("Thursday");
  16. break;
  17. case 5:
  18. printf("Friday");
  19. break;
  20. case 6:
  21. printf("Saturday");
  22. break;
  23. case 7:
  24. printf("Sunday");
  25. break;
  26. }
  27. return 0;
  28. }

break 关键字

当 C 语言运行到一个 break 关键字时,它就会跳出 switch 代码块。

这时将停止在代码块内执行更多代码,和对其他 case 条件的判断。

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

default 关键字

default 关键字指定在 case 值匹配的情况下要运行的代码:

实例
  1. #include <stdio.h>
  2. int main() {
  3. int day = 4;
  4. switch (day) {
  5. case 6:
  6. printf("Today is Saturday");
  7. break;
  8. case 7:
  9. printf("Today is Sunday");
  10. break;
  11. default:
  12. printf("Looking forward to the Weekend");
  13. }
  14. return 0;
  15. }
注意default 关键字必须用作 switch 中的最后一条语句,并且不需要 break 关键字。