Switch statement 开关状态:是否每种情况都必须有断开线?
我知道是这样,但我想知道这一点,因为使用SonarQube(代码分析程序)我读到: 当执行未在交换机案例结束时显式终止时,它将继续执行以下案例的语句虽然这有时是故意的,但通常是一种错误,会导致意外行为 所以。。我想不出你有意这么做的真实场景。有人举个例子吗 谢谢你的时间Switch statement 开关状态:是否每种情况都必须有断开线?,switch-statement,sonarqube,case,Switch Statement,Sonarqube,Case,我知道是这样,但我想知道这一点,因为使用SonarQube(代码分析程序)我读到: 当执行未在交换机案例结束时显式终止时,它将继续执行以下案例的语句虽然这有时是故意的,但通常是一种错误,会导致意外行为 所以。。我想不出你有意这么做的真实场景。有人举个例子吗 谢谢你的时间 注意。如果您希望在多个案例中执行相同的操作,而无需为每个案例编写相同的(重复的)代码,那么您可以使用此fall-through行为 switch (foo) { case 1: printf("just one\n");
注意。如果您希望在多个案例中执行相同的操作,而无需为每个案例编写相同的(重复的)代码,那么您可以使用此fall-through行为
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;
}
如果您希望在多个情况下执行相同的操作,而无需为每个情况编写相同的(重复的)代码,那么您可以使用这种贯穿行为
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;
}
如果您希望在多个情况下执行相同的操作,而无需为每个情况编写相同的(重复的)代码,那么您可以使用这种贯穿行为
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;
}
如果您希望在多个情况下执行相同的操作,而无需为每个情况编写相同的(重复的)代码,那么您可以使用这种贯穿行为
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;
}
谢谢你的回答。。我只是想要一个真实的场景。但现在我明白了!对不起,现在咖啡太多了,没法回答。。我只是想要一个真实的场景。但现在我明白了!对不起,现在咖啡太多了,没法回答。。我只是想要一个真实的场景。但现在我明白了!对不起,现在咖啡太多了,没法回答。。我只是想要一个真实的场景。但现在我明白了!对不起,现在咖啡太多了