![]() 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;
}