Zurück zu: C Tutorial
Switch Anweisung
Anstatt viele if..else
-Anweisungen zu schreiben, können Sie die switch
Anweisung verwenden.
Die Switch
Anweisung wählt einen von mehreren Codeblöcken zur Ausführung aus:
Syntax
switch (expression) {
case x:
// code block
break;
case y:
// code block
break;
default:
// code block
}
So funktioniert es:
- Der
Switch
Ausdruck wird einmal ausgewertet - Der Wert des Ausdrucks wird mit den Werten jedes
Falls
verglichen - Bei einer Übereinstimmung wird der zugehörige Codeblock ausgeführt
- Die
Break
-Anweisung bricht aus dem Switch-Block aus und stoppt die Ausführung - Die
Standardanweisung
ist optional und gibt Code an, der ausgeführt werden soll, wenn keine Übereinstimmung vorliegt
Im folgenden Beispiel wird aus der Wochentagsnummer der Wochentagsname berechnet:
Beispiel
int day = 4;
switch (day) {
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 7:
printf("Sunday");
break;
}
// Outputs "Thursday" (day 4)
Das Schlüsselwort „break“
Wenn C ein Break
Schlüsselwort erreicht, bricht es aus dem Switch-Block aus.
Dadurch wird die Ausführung weiteren Codes und die Fallprüfung innerhalb des Blocks gestoppt.
Wenn eine Übereinstimmung gefunden wurde und die Arbeit erledigt ist, ist es Zeit für eine Pause. Weitere Tests sind nicht erforderlich.
Eine Unterbrechung kann viel Ausführungszeit sparen, da sie die Ausführung des gesamten restlichen Codes im Switch-Block „ignoriert“.
Das Standardschlüsselwort
Das Schlüsselwort „default
“ gibt Code an, der ausgeführt werden soll, wenn keine Groß-/Kleinschreibung übereinstimmt:
Beispiel
int day = 4;
switch (day) {
case 6:
printf("Today is Saturday");
break;
case 7:
printf("Today is Sunday");
break;
default:
printf("Looking forward to the Weekend");
}
// Outputs "Looking forward to the Weekend"
Hinweis: Das Schlüsselwort „default“ muss als letzte Anweisung im Switch verwendet werden und benötigt keinen Umbruch.