Schalter ... Fall in C-Programmierung

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… ifLeiter tun . Die Syntax der switchAnweisung 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 sie breakauftreten.
  • Wenn keine Übereinstimmung vorliegt, werden die Standardanweisungen ausgeführt.

Wenn wir nicht verwenden break, werden alle Anweisungen nach dem übereinstimmenden Label ausgeführt.

Die defaultKlausel in der switchAnweisung 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 switchAnweisung.

Interessante Beiträge...