我在看为什么我们要用break
在switch
?,这使我想知道为什么某些语言(例如PHP和JavaScript)允许隐式掉线,而没有支持(AFAIK)的显式掉线。
这并不是continue
完全需要的,而是需要创建一个新的关键字,并且可以解决任何有关作者是否打算通过案子的模棱两可的问题。
当前支持的形式是:
switch (s) {
case 1:
...
break;
case 2:
... //ambiguous, was break forgotten?
case 3:
...
break;
default:
...
break;
}
而将其写为:
switch (s) {
case 1:
...
break;
case 2:
...
continue; //unambiguous, the author was explicit
case 3:
...
break;
default:
...
break;
}
为了这个问题的目的,让我们忽略掉线是否是一种好的编码风格的问题。
是否存在允许掉线并使其明确的语言?
是否有历史原因导致switch
隐性掉线而不是显性掉线?
@pdr,我非常明确地询问是否有任何语言已经支持穿透,我
—
zzzzBov 2012年
goto case
在C#中还不知道。
是的,很抱歉,我想念您的问题分为两个部分。不幸的是,按原样来说,我投票结束,因为这非常接近民意调查问题。会有很多正确答案。
—
pdr 2012年
C#还允许您使多个标签共享同一个语句列表,从而消除了某些需要经过的情况。其余的,
—
Brian
goto case
如pdr所述。
goto case
,因此您的问题的前提有点错误。