Gibt es eine Programmiersprache mit besserem Ansatz für die break-Anweisungen von switch?
Es ist die gleiche Syntax in viel zu vielen Sprachen:
switch (someValue) {
case OPTION_ONE:
case OPTION_LIKE_ONE:
case OPTION_ONE_SIMILAR:
doSomeStuff1();
break; // EXIT the switch
case OPTION_TWO_WITH_PRE_ACTION:
doPreActionStuff2();
// the default is to CONTINUE to next case
case OPTION_TWO:
doSomeStuff2();
break; // EXIT the switch
case OPTION_THREE:
doSomeStuff3();
break; // EXIT the switch
}
Now alles, was Sie wissen, dassbreak
-Anweisungen sind erforderlich, da dasswitch
geht weiter zum nächstencase
wannbreak
-Anweisung fehlt. Wir haben ein Beispiel dafür mitOPTION_LIKE_ONE
, OPTION_ONE_SIMILAR
undOPTION_TWO_WITH_PRE_ACTION
. Das Problem ist, dass wir diesen "Sprung zum nächsten Fall" nur sehr sehr sehr selten brauchen. Und sehr oft setzen wir Pause am Ende voncase
.
s ist sehr einfach für einen Anfänger, es zu vergessen. Und einer meiner C-Lehrer hat es uns sogar erklärt, als wäre es ein Fehler in der C-Sprache (ich möchte nicht darüber sprechen:)
Ich möchte fragen, ob es andere Sprachen gibt, die ich nicht kenne (oder die ich vergessen habe), die Schalter / Fall wie folgt behandeln:
switch (someValue) {
case OPTION_ONE: continue; // CONTINUE to next case
case OPTION_LIKE_ONE: continue; // CONTINUE to next case
case OPTION_ONE_SIMILAR:
doSomeStuff1();
// the default is to EXIT the switch
case OPTION_TWO_WITH_PRE_ACTION:
doPreActionStuff2();
continue; // CONTINUE to next case
case OPTION_TWO:
doSomeStuff2();
// the default is to EXIT the switch
case OPTION_THREE:
doSomeStuff3();
// the default is to EXIT the switch
}
Die zweite Frage: Gibt es eine historische Bedeutung dafür, warum es in C so ist? Kann es sein, dass der nächste Fall weitaus häufiger verwendet wurde, als wir ihn heutzutage verwenden?