分支控制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}