In diesem Tutorial lernen Sie anhand eines Beispiels, die switch-Anweisung in der C-Programmierung zu erstellen.
Mit der switch-Anweisung können wir einen Codeblock unter vielen Alternativen ausführen.
Sie können das gleiche mit der if… else… if
Leiter tun . Die Syntax der switch
Anweisung ist jedoch viel einfacher zu lesen und zu schreiben.
Syntax von switch… case
switch (expression) ( case constant1: // statements break; case constant2: // statements break;… default: // default statements )
Wie funktioniert die switch-Anweisung?
Der Ausdruck wird einmal ausgewertet und mit den Werten jedes Falletiketts verglichen.
- Wenn eine Übereinstimmung vorliegt, werden die entsprechenden Anweisungen nach dem übereinstimmenden Label ausgeführt. Wenn der Wert des Ausdrucks beispielsweise konstant2 ist, werden Anweisungen nach
case constant2:
ausgeführt, bis siebreak
auftreten. - Wenn keine Übereinstimmung vorliegt, werden die Standardanweisungen ausgeführt.
Wenn wir nicht verwenden break
, werden alle Anweisungen nach dem übereinstimmenden Label ausgeführt.
Die default
Klausel in der switch
Anweisung ist übrigens optional.
switch Anweisungsflussdiagramm
Beispiel: Einfacher Rechner
// Program to create a simple calculator #include int main() ( char operator; double n1, n2; printf("Enter an operator (+, -, *, /): "); scanf("%c", &operator); printf("Enter two operands: "); scanf("%lf %lf",&n1, &n2); switch(operator) ( case '+': printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2); break; case '-': printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2); break; case '*': printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2); break; case '/': printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2); break; // operator doesn't match any case constant +, -, *, / default: printf("Error! operator is not correct"); ) return 0; )
Ausgabe
Geben Sie einen Operator ein (+, -, *,): - Geben Sie zwei Operanden ein: 32,5 12,4 32,5 - 12,4 = 20,1
Der vom Benutzer eingegebene Operator - wird in der Operatorvariablen gespeichert. Und zwei Operanden 32.5 und 12.4 sind in den Variablen n1 bzw. n2 gespeichert.
Da der Bediener ist -
, springt die Steuerung des Programms zu
printf ("%. 1lf -% .1lf =% .1lf", n1, n2, n1-n2);
Schließlich beendet die break-Anweisung die switch
Anweisung.