分支控制R-1-4-7强制

禁止 switch 中 case 和 default 未以 break 或 return 终止

例外: 共用 case 必须随后加以 /* shared */ 注释说明

未终止的 case 和 default
test.c
1void foo(int x, int y)
2{
3 int z;
4 switch (x)
5 {
6 case 1:
禁止 switch 中 case 和 default 未以 break 或 return 终止 [gjb8114-r-1-4-7]
7 if (y > 0)
8 {
9 break;
10 }
11 z = 2;
12 case 2:
禁止 switch 中 case 和 default 未以 break 或 return 终止 [gjb8114-r-1-4-7]
13 case 3:
禁止 switch 中 case 和 default 未以 break 或 return 终止 [gjb8114-r-1-4-7]
14 {
15 z = 3;
16 }
17 case 4:
禁止 switch 中 case 和 default 未以 break 或 return 终止 [gjb8114-r-1-4-7]
18 z = 4;
19 case 5:
20 z = 5;
21 break;
22 default:
禁止 switch 中 case 和 default 未以 break 或 return 终止 [gjb8114-r-1-4-7]
23 z = -1;
24 }
25}
已终止的 case 和 default
test.c
1void foo(int x, int y)
2{
3 int z = 0;
4 switch (x)
5 {
6 case 1:
7 if (y > 0)
8 {
9 break;
10 }
11 z = 2;
12 break;
13 case 2: /* shared */
14 case 3:
15 {
16 y = 3;
17 break;
18 }
19 case 4: /* shared */
20 y = 4;
21 case 5:
22 z = 5;
23 break;
24 default:
25 z = -1;
26 break;
27 }
28}