Bisher haben wir für Verzweigungen im Programmablauf nur die einseitig und die zweiseitig bedingte Anweisung (if... und if...else...) verwendet.
Zur Verarbeitung von Ereignissen wie Tastendrücken kann eine Mehrfachverzweigung sehr hilfreich sein. Allgemein spricht man in diesem Zusammenhang auch von verschiedenen Fällen in einer Fallunterscheidung.
Zunächst wird der Ausdruck im oberen Dreieck bewertet, d.h. dessen Wert wird ermittelt. Dies muss in C++ letztendlich einen ganzzahligen Wert ergeben, der auch ein Zeichen repräsentieren kann. Auf Grund dieses Wertes wird dann diejenige Anweisung abgearbeitet, welche diesem Wert zugeordnet ist. Ergibt sich der Wert 2, wird also die Anweisung 2 ausgeführt. Falls der resultierende Wert in keinem der Zweige aufgeführt ist und ein sonst-Zweig vorliegt, wird dessen Alternativanweisung ausgeführt. Es wird also höchstens eine der Anweisungen abgearbeitet.
Beispiel:
In C++ werden für eine Fallunterscheidung die Schlüsselwörter
switch
, case
, break
und default
verwendet.
Der C++-Code zum Beispiel-Strukturblock lautet:
|
Der bewertete Ausdruck (hier Taste) steht in runden Klammern hinter
Die eigentliche Fallunterscheidung muss in geschweiften Klammern stehen.
Die einzelnen Fälle werden jeweils mit
Mit
Die Alternativanweisung steht hinter |
Prinzipiell kann eine Mehrfachverzweigung durch verschachtelte zweiseitig bedingte Anweisungen ersetzt werden, was aber eher unübersichtlich wird und zu weniger performantem Maschinencode führt.
Zum obigen Beispiel:
![]() |
C++-Code
|