Ich las Warum wir verwenden müssen break
in switch
? , und ich habe mich gefragt, warum implizites Durchfallen in einigen Sprachen (wie PHP und JavaScript) zulässig ist, während explizites Durchfallen (AFAIK) nicht unterstützt wird.
Es ist nicht so, dass ein neues Schlüsselwort erstellt werden müsste, wie continue
es vollkommen angemessen wäre, und es würde alle Unklarheiten darüber lösen, ob der Autor beabsichtigt, dass ein Fall zustande kommt.
Das derzeit unterstützte Formular lautet:
switch (s) {
case 1:
...
break;
case 2:
... //ambiguous, was break forgotten?
case 3:
...
break;
default:
...
break;
}
In der Erwägung, dass es sinnvoll wäre, geschrieben zu werden als:
switch (s) {
case 1:
...
break;
case 2:
...
continue; //unambiguous, the author was explicit
case 3:
...
break;
default:
...
break;
}
Lassen Sie uns zu Zwecken dieser Frage die Frage ignorieren, ob Fall-Throughs ein guter Codierungsstil sind oder nicht.
Gibt es Sprachen, die das Durchfallen erlauben und die es explizit gemacht haben?
Gibt es historische Gründe, switch
die implizites Durchfallen statt explizites zulassen?
goto case
in C # nicht bekannt war .
goto case
, wie pdr erwähnt.
goto case
damit umgehen, sodass die Prämisse Ihrer Frage ein bisschen falsch ist.