可能重复:
为什么 switch 语句被设计为需要中断?
最流行的语言 [c, c++, java] 的一个有趣现象是 switch 默认是失败的。
我很好奇原因,有人知道这个故事吗?
在 C 中,这样做的原因是为了将switch
易于优化的跳转表制作成一个跳转表,基本上,应用程序将根据表达式计算跳转距离,跳转到某个点,并从该点继续执行。
但是,我认为这种行为有时很有用,因为它有助于避免在 multiply case
s 中重复代码,毕竟break
在需要时放置 s 并不难。
Wiki有一个不错的示例来说明如何使用跌倒:
switch (n) {
case 0:
printf("You typed zero.");
break;
case 4:
printf("n is an even number.");
case 1:
case 9:
printf("n is a perfect square.");
break;
case 2:
printf("n is an even number.");
case 3:
case 5:
case 7:
printf("n is a prime number.");
break;
case 6:
case 8:
printf("n is an even number.");
break;
default:
printf("Only single-digit numbers are allowed.");
}