![]() Vorherige Seite |
![]() Eine Ebene hoch |
![]() Nächste Seite |
---|
Es gibt Situationen, in denen man sich zwischen mehr als zwei gleichberechtigten Möglichkeiten entscheiden muss. Wenn zum Beispiel die Nummer der Jahreszeit bekannt ist (1-4) und der dazugehörige Name ausgegeben werden soll, so sind dies vier gleichberechtigte Möglichkeiten. In C gibt es hierfür die switch-Verzweigung. Das Beispiel mit den vier Jahreszeiten würde folgendermaßen implementiert:
switch(Jahrenzeit) { case 1: printf("Fr�hling"); break; case 2: printf("Sommer"); break; case 3: printf("Herbst"); break; case 4: printf("Winter"); break; default: printf("Unbekannte Jahreszeit"); break; }
Die einzelnen case-Zeilen sind wie Sprungmarken zu betrachten. Hat die Verzweigungsbedingung (im Beispiel Jahreszeit) den Wert, der hinter dem case steht, so werden die folgenden Anweisungen bis zum nächsten break-Befehl ausgeführt.
Die Zeile mit dem Schlüsselwort default wird ausgeführt, wenn keines der anderen Bedingungen zutrifft.
Die break-Befehle können gezielt verwendet werden. Sollen z.B. die Anzahl der Tage eines Monats ermittelt werden, sähe das in etwa so aus:
Tage = 31; switch(Monat) { case 4: /* April */ case 6: /* Juni */ case 9: /* September */ case 11: Tage--; break; /* November */ case 2: /* Februar */ if(Schaltjahr) Tage = 29; else Tage = 28; break; }