Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Eine Einführung in die Programmiersprache C und die Grundlagen ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
9.1.2 switch<br />
Anweisung A<br />
Anweisung B<br />
Ausdruck<br />
case1: case -3: case 9: default:<br />
Anw. 1 Anw. 2 Anw. 3<br />
Anw. d<br />
Mit der switch-Anweisung kann e<strong>in</strong>e Mehrfachverzweigung<br />
realisiert werden. Der Wert des<br />
switch-Ausdrucks wird mit den Konstanten<br />
bei den case-Marken verglichen, anschliessend<br />
wird zur entsprechenden Marke verzweigt <strong>und</strong><br />
<strong>die</strong> entsprechende Anweisung ausgeführt. Wenn<br />
ke<strong>in</strong>e passende Marke existiert, wird bei der<br />
Marke default weitergefahren, falls vorhanden,<br />
<strong>und</strong> sonst nach der switch-Anweisung<br />
Anweisung A<br />
switch ( Ausdruck ) { /* Ausdruck wird ausgewertet */<br />
case 1: Anweisung 1 /* Falls Ausdruck 1 ergibt, wird hier weitergefahren<br />
*/<br />
break;<br />
case -3: Anweisung 2 /* Falls Ausdruck -3 ergibt, wird hier weitergefahren<br />
*/<br />
break;<br />
case 9: Anweisung 3 /* Falls Ausdruck 9 ergibt, wird hier weitergefahren<br />
*/<br />
break;<br />
default: Anweisung d /* In allen anderen Faellen wird hier weitergefahren */<br />
break;<br />
}<br />
Anweisung B<br />
Ausdruck muss e<strong>in</strong> ganzzahliges Ergebnis haben. Alle case-Konstanten müssen verschieden se<strong>in</strong><br />
<strong>und</strong> es ist nicht möglich, bei e<strong>in</strong>er Marke e<strong>in</strong>en Bereich anzugeben. Um e<strong>in</strong>en Bereich abzudecken<br />
müssen alle enthaltenen Werte explizit mit Marken angegeben werden. Achtung, bei durch Kommas<br />
(Kommaoperator!) getrennten Konstanten gilt e<strong>in</strong>fach <strong>die</strong> letzte Konstante! (Frage: wieso?).<br />
E<strong>in</strong>satz:<br />
<strong>E<strong>in</strong>e</strong> mögliche Anwendung für <strong>die</strong> switch-Anweisung ist das Überprüfen e<strong>in</strong>er E<strong>in</strong>gabe, <strong>die</strong> <strong>in</strong><br />
verschiedene Fälle verzweigt. Zum Beispiel bei der Behandlung e<strong>in</strong>er Menuabfrage. Dabei wird<br />
zuerst e<strong>in</strong>e Bildschirmmaske mit den verschiedenen E<strong>in</strong>gabemöglichkeiten angezeigt, <strong>die</strong> Auswahl<br />
des Benutzers e<strong>in</strong>gelesen <strong>und</strong> anschliessend <strong>in</strong> e<strong>in</strong>e der vier Möglichkeiten verzweigt.<br />
pr<strong>in</strong>tf("Bitte waehlen Sie e<strong>in</strong>e der folgenden Aufgaben \n");<br />
pr<strong>in</strong>tf("K - Kontostand abfragen \n");<br />
pr<strong>in</strong>tf("E - Dauerauftrag e<strong>in</strong>richten \n");<br />
pr<strong>in</strong>tf("U - Ueberweisung taetigen \n");<br />
pr<strong>in</strong>tf("A - Aufhoeren \n");<br />
scanf("%c", &e<strong>in</strong>gabe);<br />
switch(e<strong>in</strong>gabe) {<br />
Ausgabe des Programms:<br />
Bitte waehlen Sie e<strong>in</strong>e der folgenden Aufgaben<br />
K - Kontostand abfragen<br />
E - Dauerauftrag e<strong>in</strong>richten<br />
U - Ueberweisung taetigen<br />
A - Aufhoeren<br />
}<br />
case 'K': kontostand();<br />
/*Rufe kontostand() Funktion auf*/<br />
break;<br />
case 'E': dauerauftrag(); /*Rufe dauerauftrag() Funktion auf*/<br />
break;<br />
case 'U': ueberweisung(); /*Rufe ueberweisung() Funktion auf*/<br />
break;<br />
case 'A': aufhoeren();<br />
/*Rufe aufhoeren() Funktion auf*/<br />
break;<br />
default : pr<strong>in</strong>tf("Bitte vertippen Sie sich nicht andauernd \n");<br />
break;<br />
Gedruckt am 10.09.2009 14:23:00 Letzte Änderung am: 10. September 2009 Version 2.4.1, I. Oesch 34/147