Die switch-Anweisung ermöglicht es Ihnen, Fluss in C ++ zu steuern

Ein Programm hat manchmal aus einer großen Anzahl von möglichen zulässigen Eingaben auf eine Option zu entscheiden. C ++ bietet eine bequeme Kontrollmechanismus unter mehreren Optionen zur Auswahl: die Schalter Erklärung. Das Schalter Anweisung hat das folgende Format:

switch (Ausdruck) {case const1: // geht hier, wenn Ausdruck == const1break-Fall const2: // geht hier, wenn Ausdruck == const2break-Fall const3: // so oft wiederholen, wie Sie hier // gehen mögen, wenn Ausdruck == const3break-default: // geht hier, wenn keiner der anderen Fälle übereinstimmen}

Nach der Begegnung Schalter Aussage, C ++ auswertet Ausdruck. Es übergibt dann die Steuerung zu dem Fall mit dem gleichen Wert wie Ausdruck. Die Steuerung fährt von dort auf die Unterbrechung Anweisung, die Kontrolle der über } am Ende von Schalter Erklärung. Wenn keiner der Fälle übereinstimmen, geht die Steuerung auf den Standardfall.

Der Standardfall ist optional. Wenn der Ausdruck keinen Fall übereinstimmt und kein Standardfall vorgesehen ist, geht die Steuerung sofort an die }.

Betrachten Sie das folgende Beispiel-Code-Snippet:

int nMonth-cout lt; lt; "Geben Sie die Nummer des Monats:" -cin >> nMonth-Schalter (nMonth) {case 1: cout lt; lt; "Es ist Januar" lt; lt; Endl-break-Fall 2: cout lt; lt; "Es ist Februar" lt; lt; Endl - Break-Fall 3: cout lt; lt; "Es ist März" lt; lt; Endl - Break-Fall 4: cout lt; lt; "Es ist April" lt; lt; Endl - Break-Fall 5: cout lt; lt; "Es ist Mai" lt; lt; Endl - Break-Fall 6: cout lt; lt; "Es ist June" lt; lt; Endl - Break-Fall 7: cout lt; lt; "Es ist Juli" lt; lt; Endl - Break-Fall 8: cout lt; lt; "Es ist August" lt; lt; Endl - Break-Fall 9: cout lt; lt; "Es ist September" lt; lt; Endl - Break-Fall 10: cout lt; lt; "Es ist Oktober" lt; lt; Endl - Break-Fall 11: cout lt; lt; "Es ist November" lt; lt; Endl - Break-Fall 12: cout lt; lt; "Es ist Dezember" lt; lt; Endl - break-default: cout lt; lt; "Das ist kein gültiger Monat" lt; lt; endl--}

Sie erhalten die aus dem Programm folgende Ausgabe, wenn ein Wert von 3 Eingabe:

Geben Sie die Nummer des Monats: 3Es ist MarchPress Sie die Eingabetaste. . .

Die Abbildung zeigt, wie die Steuerung durchströmt die Schalter Erklärung des früheren Ergebnis zu erzeugen, März.

bild0.jpg

EIN Schalter Aussage ist nicht wie eine Reihe von ob Aussagen. Zum Beispiel werden nur konstante ganze Zahlen oder Zeichen nach der zulässige Fall Schlüsselwort (dh Ausdrücke, die vollständig zum Zeitpunkt der Erstellung ausgewertet werden kann). Sie können keine Laufzeit-Expression nach einer Versorgung Fall. Somit ist die folgende nicht zulässig:

// Fällen nicht werden expressions- die // folgende für m nicht legal ist als intswitch deklarierte (n) {case m: cout lt; lt; "N gleich m" lt; lt; Endl-break-Fall 2 * m: cout lt; lt; "N gleich 2m" lt; lt; Endl-break-Fall 3 * m: cout lt; lt; "N gleich 3m" lt; lt; endl-}

Jeder der Fälle muss einen Wert zum Zeitpunkt der Erstellung haben. Der Wert von m nicht bekannt ist, bis das Programm ausführt.

Tatsächlich führt der 2011 C ++ Standard einen konstanten Ausdruck Typ, der als Ziel einer case-Anweisung verwendet werden kann.

Menü