Nehmen wir diesen Beispielcode ( Quelle ) an:
%Vor% Sollten wir eine break;
im letzten default
-Fall verwenden? Wenn ich es entferne, sehe ich das gleiche Verhalten des Programms. Allerdings habe ich gesehen, dass andere Beispiele auch break;
im Fall default
verwenden.
Warum? Gibt es einen Grund?
Sollen wir eine Pause machen? im letzten Standardfall?
From Die Programmiersprache C - Zweite Ausgabe (K & amp; R 2):
Kapitel 3.4 Switch
Als eine gute Form, legen Sie eine Pause nach dem letzten Fall (der Standard hier), obwohl es logisch unnötig ist. Eines Tages, wenn ein anderes Fall wird am Ende hinzugefügt, dieses bisschen defensive Programmierung wird rette dich.
Zum einen sollten Sie darüber nachdenken, warum wir break
in der switch-Anweisung verwenden sollten. Schauen Sie sich diese no-breaking switch-Anweisung an.
Angenommen input == 1
. Das Programm wird natürlich playgame()
aufrufen, aber da es kein break
gibt, beendet das Programm nicht switch
, sondern ruft loadgame()
, playmultiplayer()
, zwei printf
s nacheinander auf.
Um dies zu vermeiden, verwenden wir break
.
Wegen break
beendet das Programm die switch
-Anweisung, bevor Codes von case 2
ausgeführt werden. Das ist unser erwartetes Ergebnis, nicht wahr?
Dein Schalter ist dies:
%Vor% Da es nach case
keine default
s gibt, gibt es keinen Effekt, ob Sie break
auf default
schreiben oder nicht. Allerdings können Sie leicht einen neuen Fall schreiben.
Es ist häufige Fehler in C / C ++. Wenn Sie nach 5 Jahren ein neues Feature hinzufügen und es komplett vergessen, wird es zu einem sehr fehlerhaften Bug. Einige moderne Sprachen (z. B. C #, ...) sogar verbieten switch-case ohne break
oder return
.
Fazit: Es gibt kein Problem in der Syntax , aber es ist eine sehr schlechte Praxis und die Verwendung von break
wird dringend empfohlen.
Es gibt keinen Unterschied , wenn Sie weglassen oder die break
-Anweisung belassen. Es ist Geschmackssache.
Es ist jedoch eine gute Übung, die break-Anweisung aus verschiedenen Gründen zu schreiben.
Sehen Sie sich Programmiereraustausch an.
Eigentlich brauchen Sie die Pause nicht im Standardfall. Und bei der Überprüfung ist es genauso, wenn Sie im Standardfall keine Unterbrechung haben.
Aber meiner Meinung nach sollten Sie die Pause im Standardfall haben, weil:
break
scheint in diesem Fall optional zu sein. und auch dein Code wird fast funktionieren.
In vielen Situationen verbessert das Hinzufügen von Unterbrechungen Ihren Code und schützt Ihren Code vor Fehlern / Ausnahmen.
es erhöht die Lesbarkeit, Konsistenz und mehr fehlerfrei.
Eine Sprache wie C # -Bruch (oder eine andere Kontrollflussanweisung, die den Fall verlässt) ist nach der letzten Alternative technisch notwendig. dan04
für bessere Programmierpraktiken schlage ich vor, dass man es benutzen sollte.
Siehe excellent post für weitere Details.
>Tags und Links c break switch-statement