我知道确实如此,但我想知道这是因为使用 SonarQube (Code Analizer)我读到了:
如果在switch case结束时没有明确终止执行,它将继续执行以下情况的语句。 虽然这有时是故意的,但通常是一个导致意外行为的错误。
所以......我无法想象你有意这样做的真实场景。任何一个例子?
谢谢你的时间!
问候。
答案 0 :(得分:3)
如果您希望针对多个案例执行相同的操作,而不为每个案例编写相同(重复)的代码,则可以使用此直通行为。
switch (foo) {
case 1: printf("just one\n"); /* matches 1 only */
break;
case 2: printf("a couple\n"); /* matches 2 only */
break;
case 3:
case 4:
case 5: printf("a few\n"); /* matches for 3, 4, 5 */
break;
case 6:
case 7:
case 8:
case 9: printf("several\n"); /* matches for 6, 7, 8, 9 */
break;
default: printf("a lot\n"); /* matches anything else */
break;
}