21.11.2013 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!