切换语句的默认值为何?

时间:2012-09-11 07:47:50

标签: c# java c++ c programming-languages

  

可能重复:
  Why was the switch statement designed to need a break?

大多数流行语言[c,c ++,java]的有趣现象是默认情况下切换是直接的。

我很好奇理性,有人知道这个故事吗?

1 个答案:

答案 0 :(得分:1)

在C中,其原因是打算将switch轻松地设置为跳转表,基本上,根据表达式,应用程序将计算跳跃距离,跳转到某个点,然后继续从那时开始执行。

但是,我认为这种行为有时是有用的,因为它有助于避免繁殖case中的代码重复,毕竟当你使用break时并不难。需要它。

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.");
}