Es folgt ein Beispiel für die Ausgabe des Programms PLATTERS:// platters.cpp // Veranschaulicht SWITCH-Anweisung #include <iostream.h> void main() { int speed; // Plattentellerdrehzahl cout << "\nGeben Sie 33, 45, oder 78 ein: "; cin >> speed; // Anwender gibt Drehzahl des Plattenspielers ein switch(speed); // Auswahl auf Basis der eingegebenen Drehzahl { case 33: // Anwender hat 33 eingegeben cout << "LP-Album\n"; break; case 45: // Anwender hat 45 eingegeben cout << "Single-Auswahl\n"; break; case 75: // Anwender hat 78 eingegeben cout << "Schellackplatte\n"; break; } }
Geben Sie 33, 45 oder 78 ein: 45
Single-Auswahl
Das Programm PLATTERS hat eine break-Anweisung am Ende jedes case-Abschnittes. Das Schlüsselwort break bewirkt, daß die gesamte switch-Anweisung beendet wird. Die Programmablaufsteuerung geht zur ersten Anweisung über, die dem Ende der switch-Konstrucktion folgt. Vergessen Sie nicht nicht, break; zu berücksichtigen, denn ohne diese Anweisung geht die Ablaufsteuerung weiter hinunter (oder »fällt durch«) zu den Anweisungen für den nächsten case-Körber, was Sie normalerweise nicht wollen. (Obwohl man diesen Umstand manchmal für ander Zwecke ausnutzen kann.)
Das Beispiel PLATTERS zeigte eine switch-anweisung, die auf eine Variable vom Typ int aufgebaut. Sie können auch den Typ char einsetzen. Es folgt unser Programm ADELSIF, neu geschrieben unter dem Namen ADSWITCH:
(Beachen Sie, daß Sie zwar Ganzzahlen und Zeichen als Schaltvariablen verwenden können, wie es in den beiden letzten Beispiele gezeigt wurde, nicht aber Gleitkommazahlen.)// adswitch.cpp // Veranschaulicht SWITCH anhand eines Programms für ein Abenteuerspiel #include <iostream.h> #include <conio.h> // Für die Funktion getche() void main() { char dir='a'; int x = 10, y = 10; while (dir != '\r') { cout << "\nIhre Position ist " << x << ", " << y; cout << "\nDrücken Sie eine Richtungstaste (n, s, o, w): "; dir = getche(); // Zeichen einlesen switch(dir) // Switch-Variable auf die setzen { case 'n': y--; break; // Gehe in Richtung Norden case 's': y++; break; // Gehe in Richtung Süden case 'o': x++; break; // Gehe in Richtung Osten case 'w': x--; break; // Gehe in Richtung Westen case '\r': cout << "Beenden\n"; break; // Enter-Taste default: cout << "Noch einmal versuchen\n"; // Unbekanntes Zeichen } // Ende der switch-Anweisung } // Ende des while-Körbers } // Ende der main-Funktion
Im Programm ADSWITCH, bei der Sie erwarten, daß die letzte case-Bedingung am Ende der switch-Konstrucktion auftaucht, werden Sie stattdessen das Schlüsselwort default sehen. Dieses Schlüsselwort bietet der switch-Konstruktion die Alternative, eine Aktion zu ergreifen, wenn der Werd der Schleifenvariablen mit keiner case-Konstanten übereinstimmt.