switch…case in C (Switch-Anweisung in C) mit Beispielen

Was ist eine Switch-Anweisung in C?

Switch-Anweisung in C testet den Wert einer Variablen und compares es mit mehreren Fällen. Sobald die Fallübereinstimmung gefunden wurde, wird ein mit diesem bestimmten Fall verknüpfter Anweisungsblock ausgeführt.

Jedes Gehäuse in einem Block eines Schalters hat einen anderen Namen/eine andere Nummer, die als Kennung bezeichnet wird. Der vom Benutzer bereitgestellte Wert wird mit allen Fällen innerhalb des Schalterblocks verglichen, bis eine Übereinstimmung gefunden wird.

Wenn KEINE Übereinstimmung zwischen Groß- und Kleinschreibung gefunden wird, wird die Standardanweisung ausgeführt und die Steuerung verlässt den Switch-Block.

Wechseln Sie die Groß-/Kleinschreibungssyntax

Eine allgemeine Syntax für die Implementierung von Switch-Case in einem C-Programm lautet wie folgt:

switch( expression )
{
	case value-1:
			Block-1;
			Break;
	case value-2:
			Block-2;
			Break;
	case value-n:
			Block-n;
			Break;
	default:
			Block-1;
			Break;
}
Statement-x;
  • Der Ausdruck kann ein ganzzahliger Ausdruck oder ein Zeichenausdruck sein.
  • Die Werte 1, 2 und n sind Fallbezeichnungen, mit denen jeder Fall einzeln identifiziert wird. Denken Sie daran, dass die Groß-/Kleinschreibung nicht identisch sein sollte, da dies zu Problemen bei der Ausführung eines Programms führen kann. Angenommen, wir haben zwei Fälle mit derselben Bezeichnung wie „1“. Während der Ausführung des Programms wird dann der zuerst angezeigte Fall ausgeführt, obwohl Sie möchten, dass das Programm einen zweiten Fall ausführt. Dies führt zu Problemen im Programm und liefert nicht die gewünschte Ausgabe.
  • Fallbezeichnungen enden immer mit einem Doppelpunkt ( : ). Jeder dieser Fälle ist mit einem Block verbunden.
  • Ein Block besteht aus nichts anderem als mehreren Anweisungen, die für einen bestimmten Fall gruppiert sind.
  • Immer wenn der Schalter ausgeführt wird, wird der Wert von test-expression mit allen Fällen verglichen, die wir innerhalb des Schalters definiert haben. Angenommen, der Testausdruck enthält den Wert 4. Dieser Wert wird mit allen Fällen verglichen, bis der Fall, dessen Bezeichnung vier im Programm gefunden wird. Sobald ein Fall gefunden wird, wird der mit diesem bestimmten Fall verbundene Anweisungsblock ausgeführt und die Steuerung geht aus dem Schalter.
  • Das Schlüsselwort break gibt jeweils das Ende eines bestimmten Falls an. Wenn wir die Pause nicht in jedem Fall setzen, führt der Schalter in C alle Fälle weiter aus, bis das Ende erreicht ist, obwohl der spezifische Fall ausgeführt wird. Dies sollte nicht passieren; Daher müssen wir in jedem Fall immer das Schlüsselwort break eingeben. Break beendet den Fall, sobald er ausgeführt wird, und das Steuerelement fällt aus dem Schalter.
  • Der Standardfall ist optional. Immer wenn der Wert von test-expression mit keinem der Fälle innerhalb des Schalters übereinstimmt, wird der Standardwert ausgeführt. Anderewise, ist es nicht notwendig, den Standardwert in den Switch zu schreiben.
  • Sobald der Schalter ausgeführt wird, geht die Steuerung zur Anweisung-x über und die Ausführung eines Programms wird fortgesetzt.

Flussdiagramm der Switch-Anweisung

Following Das Diagramm zeigt, wie ein Fall im Schalterfall ausgewählt wird:

Flussdiagramm der Switch-Anweisung
So funktioniert der Schalter

Beispiel für einen Switch-Fall in C

Following Das Programm veranschaulicht die Verwendung von Schalter:

#include <stdio.h>
    int main() {
        int num = 8;
        switch (num) {
            case 7:
                printf("Value is 7");
                break;
            case 8:
                printf("Value is 8");
                break;
            case 9:
                printf("Value is 9");
                break;
            default:
                printf("Out of range");
                break;
        }
        return 0;
    }

Ausgang:

Value is 8

Beispiel für einen Switch-Fall in C

  1. Im gegebenen Programm haben wir initialisiert a erklärt Variable Zahl mit Wert 8.
  2. Ein Schalterkonstrukt wird verwendet, um den in der Variablen num gespeicherten Wert zu vergleichen und den mit dem übereinstimmenden Fall verbundenen Anweisungsblock auszuführen.
  3. Da in diesem Programm der in der Variablen num gespeicherte Wert acht ist, führt ein Schalter den Fall aus, dessen Fallbezeichnung 8 ist. Nach der Ausführung des Falls fällt die Steuerung aus dem Schalter und das Programm wird mit dem erfolgreichen Ergebnis beendet Drucken des Werts auf dem Ausgabebildschirm.

Versuchen Sie, den Wert der Variablen num zu ändern, und bemerken Sie die Änderung in der Ausgabe.

Wir betrachten zum Beispiel Folgendeswing Programm mit den Standardeinstellungen:

#include <stdio.h>
int main() {
int language = 10;
  switch (language) {
  case 1:
    printf("C#\n");
    break;
  case 2:
    printf("C\n");
    break;
  case 3:
    printf("C++\n");
    break;
  default:
    printf("Other programming language\n");}}

Ausgang:

Other programming language

Wenn Sie in C mit Switch Case arbeiten, gruppieren Sie mehrere Cases mit eindeutigen Beschriftungen. Sie müssen jeweils eine Break-Anweisung einführen, um am Ende einer Switch-Anweisung zu verzweigen.

Der optionale Standardfall wird ausgeführt, wenn keine anderen Übereinstimmungen vorgenommen werden.

Wir berücksichtigen Folgendeswing switch-Anweisung:

#include <stdio.h>
int main() {
int number=5;
switch (number) {
  case 1:
  case 2:
  case 3:
    printf("One, Two, or Three.\n");
    break;
  case 4:
  case 5:
  case 6:
    printf("Four, Five, or Six.\n");
    break;
  default:
    printf("Greater than Six.\n");}}

Ausgang:

Four, Five, or Six.

Verschachtelter Schalter in C

In Ckönnen wir einen inneren Schalter in einen äußeren Schalter einbetten. Außerdem können die Fallkonstanten des inneren und äußeren Schalters gemeinsame Werte und ohne Konflikte haben.

Wir berücksichtigen Folgendeswing Programm, das den Benutzer dazu auffordert, seine eigene ID einzugeben. Wenn die ID gültig ist, wird er aufgefordert, sein Passwort einzugeben. Wenn das Passwort korrekt ist, druckt das Programm den Namen des Benutzers usw. auswise Wenn die ID nicht vorhanden ist, druckt das Programm die falsche ID aus

#include <stdio.h>
int main() {
        int ID = 500;
        int password = 000;
        printf("Plese Enter Your ID:\n ");
        scanf("%d", & ID);
        switch (ID) {
            case 500:
                printf("Enter your password:\n ");
                scanf("%d", & password);
                switch (password) {
                    case 000:
                        printf("Welcome Dear Programmer\n");
                        break;
                    default:
                        printf("incorrect password");
                        break;
                }
                break;
            default:
                printf("incorrect ID");
                break;
        }
}

Ausgang:

Plese Enter Your ID:
 500
Enter your password:
 000
Welcome Dear Programmer

Verschachtelter Schalter in C

  1. Im gegebenen Programm haben wir die Initialisierung von zwei Variablen erklärt: ID und Passwort
  2. Zum Vergleichen des in der Variablen-ID eingegebenen Werts wird ein äußeres Schalterkonstrukt verwendet. Es führt den Anweisungsblock aus, der dem übereinstimmenden Fall zugeordnet ist (wenn ID==500).
  3. Wenn die Blockanweisung mit der übereinstimmenden Groß-/Kleinschreibung ausgeführt wird, wird ein innerer Schalter verwendet, um die in der Variable „Passwort“ eingegebenen Werte zu vergleichen und die mit der übereinstimmenden Groß-/Kleinschreibung verknüpften Anweisungen auszuführen (wenn Passwort==000).
  4. Anderewise, löst der Schalter case den Standardfall aus und gibt den entsprechenden Text bezüglich der Programmgliederung aus.

Warum brauchen wir ein Switch-Gehäuse?

Es gibt ein potenzielles Problem mit dem if-else-Anweisung Welches ist die complexDie Funktionalität des Programms nimmt zu, wenn die Anzahl alternativer Pfade zunimmt. Wenn Sie im Programm mehrere if-else-Konstrukte verwenden, kann es schwierig werden, ein Programm zu lesen und zu verstehen. Manchmal kann es sogar den Entwickler verwirren, der das Programm selbst geschrieben hat.

Die Lösung für dieses Problem ist die switch-Anweisung.

Regeln für die Switch-Anweisung

  • Ein Ausdruck muss immer zu einem Ergebnis ausgeführt werden.
  • Fallbezeichnungen müssen konstant und eindeutig sein.
  • Fallbezeichnungen müssen mit einem Doppelpunkt ( : ) enden.
  • In jedem Fall muss ein Schlüsselwort break vorhanden sein.
  • Es kann nur eine Standardbezeichnung geben.
  • Wir können mehrere Switch-Anweisungen verschachteln.

Zusammenfassung

  • Ein Schalter ist ein Entscheidungskonstrukt in 'C. "
  • Ein Schalter wird in einem Programm verwendet, in dem mehrere Entscheidungen beteiligt sind.
  • Ein Schalter muss einen ausführbaren Testausdruck enthalten.
  • Jeder Fall muss ein Schlüsselwort „break“ enthalten.
  • Die Fallbezeichnung muss konstant und eindeutig sein.
  • Die Standardeinstellung ist optional.
  • Mehrere Switch-Anweisungen können ineinander verschachtelt werden.