8 个回答

case是从汇编时代留下来的典型“模式”,汇编时代有大量的cmp(比较)然后jmp(跳转),是一种非常常用的写法。C模仿了汇编的cmp+jmp模式设计出了switch-case模式,就这样switch-case就延续下来了,接下来各种模仿语言也就跟着用了。

新手上路,请多包涵

用switch的时候。那要是我不要break怎么办,难道没这种情况?很多需求下,break也是不需要的。

switch(n)
{
case 1:
case 2:
  执行代码块 a
  break;
case 3:
  执行代码块 b
  break;
default:
  xxx
}
// 我想在1和2的时候都执行代码块a,你凭啥要给我的case 1加break

go语言就是默认break的,想要继续执行代码需要手动加fallthrough

Haxe也是自动break。少了break语句少了一点灵活性,但也减少了一些出错的几率,各有取舍吧

C#是半默认break,你不写会编译器会发错误

听说好像这是设计时的失误,但是还是被沿用下来了。

因为除了break,还有continue

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题