为什么会选择让编程者手动写break?是出于什么考虑么?
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
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(8)
case是从汇编时代留下来的典型“模式”,汇编时代有大量的cmp(比较)然后jmp(跳转),是一种非常常用的写法。C模仿了汇编的cmp+jmp模式设计出了switch-case模式,就这样switch-case就延续下来了,接下来各种模仿语言也就跟着用了。
用switch的时候。那要是我不要break怎么办,难道没这种情况?很多需求下,break也是不需要的。
go语言就是默认break的,想要继续执行代码需要手动加fallthrough
Haxe也是自动break。少了break语句少了一点灵活性,但也减少了一些出错的几率,各有取舍吧
C#是半默认break,你不写会编译器会发错误
听说好像这是设计时的失误,但是还是被沿用下来了。
因为除了break,还有continue