C switch-Anweisung
Testfall eineswitch - Anweisung ermöglicht eine Variable gleich dem mehrfachen Wert.Jeder Wert ist ein Fall genannt, und die Variable wird jedesSchaltergehäuse getestet werden überprüft werden.
Grammatik
C - Spracheswitch - Anweisung Syntax:
switch(expression){ case constant-expression : statement(s); break; /* 可选的 */ case constant-expression : statement(s); break; /* 可选的 */ /* 您可以有任意数量的 case 语句 */ default : /* 可选的 */ statement(s); }
switch - Anweisung müssen diese Regeln befolgen:
- switch - Anweisung Ausdruckmuss eine ganze Zahl oder Aufzählungstyp oder eine Klasse - Typ sein, die Klasse je eine Umwandlungsfunktion hat es auf eine ganze Zahl oder Aufzählungstyp zu konvertieren.
- In einem Schalter können Sie eine beliebige Anzahl von Case-Anweisungen haben. Jeder Fall wird gefolgt von einem Wert mit einem Doppelpunkt zu vergleichen.
- Beikonstanter Ausdruck muss den gleichen Datentyp haben und Variablen zu wechseln, und es muss eine Konstante oder wörtliche sein.
- Wenn die Variable getestet auf den Fall konstanter Zeit gleich ist, wird von einem Fall Anweisung folgt ausgeführt werden, bis er einebreak - Anweisung trifft.
- Wenn einebreak - Anweisung angetroffen wird, endet Schalter der Steuerfluss in die nächste Zeile springt nach der switch - Anweisung.
- Nicht muss jeder FallBruch einzubeziehen.Wenn der Fall Aussage keinenBruch enthält, werden wir den Fluss des nachfolgenden Fall zu kontrollieren, bis er eine Pause bis begegnet.
- Eineswitch - Anweisung ein optionales Standardfallhabenkann,wird es am Ende des Schalters. Standardfall kann in allen oben genannten Fall verwendet werden, ist nicht der Fall, wenn eine Aufgabe ausführt. DerBruch in der Standard - case - Anweisung ist nicht erforderlich.
Flussdiagramm
Beispiele
#include <stdio.h> int main () { /* 局部变量定义 */ char grade = 'B'; switch(grade) { case 'A' : printf("很棒!\n" ); break; case 'B' : case 'C' : printf("做得好\n" ); break; case 'D' : printf("您通过了\n" ); break; case 'F' : printf("最好再试一下\n" ); break; default : printf("无效的成绩\n" ); } printf("您的成绩是 %c\n", grade ); return 0; }
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt es die folgenden Ergebnisse:
做得好 您的成绩是 B