1

为什么会选择让编程者手动写break?是出于什么考虑么?

8个回答

5

已采纳

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

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

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

0

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

0

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

0

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

0

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

-2

因为除了break,还有continue

撰写答案