switch

当对同一个整数/字符做多种固定分支时,switch 往往比一长串 if 清晰。

1. 完整例子

C
1#include <stdio.h>
2 
3int main(void) {
4 char op = '+';
5 int a = 8, b = 2, r = 0;
6 switch (op) {
7 case '+':
8 r = a + b;
9 break;
10 case '-':
11 r = a - b;
12 break;
13 case '*':
14 r = a * b;
15 break;
16 default:
17 printf("未知运算符\n");
18 break;
19 }
20 printf("r=%d\n", r);
21 return 0;
22}

2. 概念:case 贯穿

若忘记 break,会继续执行下一个 case 的代码(贯穿)。有时故意利用贯穿,但初学先每支都 break。

C
1/* 故意贯穿示例 */
2switch (grade) {
3 case 'A':
4 case 'B':
5 printf("pass\n");
6 break;
7 case 'C':
8 printf("ok\n");
9 break;
10}

3. 限制