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 vergleicht ihn mit mehreren Fällen. Sobald die Fallübereinstimmung gefunden wurde, wird ein Block von Anweisungen ausgeführt, die diesem speziellen Fall zugeordnet sind.
Jeder Fall 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 die Übereinstimmung gefunden wird.
Wenn KEINE Fallübereinstimmung gefunden wird, wird die Standardanweisung ausgeführt und die Steuerung verlässt den Schalterblock.
In diesem Tutorial lernen Sie-
- Was ist eine Switch-Anweisung in C?
- Case-Syntax wechseln
- Flussdiagramm der Switch-Anweisung
- Case-Beispiel in C wechseln
- Verschachtelter Schalter in C
- Warum brauchen wir eine Switch-Hülle?
- Regeln für switch-Anweisungen
Case-Syntax wechseln
Eine allgemeine Syntax, wie switch-case in einem C-Programm implementiert wird, 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.
- Wert-1, 2, n sind Fallbezeichnungen, die verwendet werden, um jeden Fall einzeln zu identifizieren. Denken Sie daran, dass die Fallbezeichnungen nicht identisch sein sollten, da dies beim Ausführen eines Programms zu Problemen führen kann. Angenommen, wir haben zwei Fälle mit demselben Label wie „1“. Dann wird beim Ausführen des Programms der zuerst erscheinende Fall ausgeführt, obwohl Sie möchten, dass das Programm einen zweiten Fall ausführt. Dies verursacht Probleme im Programm und liefert nicht die gewünschte Ausgabe.
- Fallbezeichnungen enden immer mit einem Doppelpunkt ( :). Jedem dieser Fälle ist ein Block zugeordnet.
- Ein Block ist nichts anderes als mehrere 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 Label 4 im Programm gefunden wird. Sobald ein Fall gefunden wird, wird der diesem bestimmten Fall zugeordnete Anweisungsblock ausgeführt und die Steuerung geht aus dem Schalter.
- Das Schlüsselwort break zeigt jeweils das Ende eines bestimmten Falls an. Wenn wir die Unterbrechung nicht in jedem Fall setzen, wird der Schalter in C, obwohl der spezifische Fall ausgeführt wird, weiterhin alle Fälle ausführen, bis das Ende erreicht ist. Dies sollte nicht passieren; Daher müssen wir in jedem Fall immer das Schlüsselwort break setzen. Break beendet den Fall, sobald er ausgeführt wurde, und das Steuerelement fällt aus dem Schalter heraus.
- 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. Ansonsten ist es nicht nötig, default in den Schalter zu schreiben.
- Sobald der Schalter ausgeführt wird, geht die Steuerung zur Anweisung-x und die Ausführung eines Programms wird fortgesetzt.
Flussdiagramm der Switch-Anweisung
Das folgende Diagramm zeigt, wie ein Fall in switch case ausgewählt wird:

Beispiel für Wechselfall in C
Das folgende Programm veranschaulicht die Verwendung von switch:
#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; }
Ausgabe:
Value is 8
- In dem gegebenen Programm haben wir eine Variable num mit dem Wert 8 initialisiert.
- Ein switch-Konstrukt wird verwendet, um den in der Variablen num gespeicherten Wert zu vergleichen und den Anweisungsblock auszuführen, der dem übereinstimmenden Fall zugeordnet ist.
- Da in diesem Programm der in Variable num gespeicherte Wert acht ist, führt ein Schalter den Fall aus, dessen case-Label 8 ist. Nach Ausführung des Falls fällt die Steuerung aus dem Schalter und das Programm wird mit beendet erfolgreiches Ergebnis durch Drucken des Wertes auf dem Ausgabebildschirm.
Versuchen Sie, den Wert der Variablen num zu ändern, und beachten Sie die Änderung in der Ausgabe.
Als Beispiel betrachten wir das folgende Programm, das standardmäßig:
#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");}}
Ausgabe:
Other programming language
Wenn Sie in C mit switch case arbeiten, gruppieren Sie mehrere Fälle mit eindeutigen Labels. 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 gefunden werden.
Wir betrachten die folgende 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");}}
Ausgabe:
Four, Five, or Six.
Verschachtelter Schalter in C
In C können wir einen inneren Schalter in einen äußeren Schalter einbetten. Auch die Case-Konstanten des inneren und äußeren Schalters können gemeinsame Werte und ohne Konflikte haben.
Wir betrachten das folgende Programm, bei dem der Benutzer seine eigene ID eingeben muss. Wenn die ID gültig ist, wird er aufgefordert, sein Passwort einzugeben. Wenn das Passwort korrekt ist, druckt das Programm den Namen des Benutzers, andernfalls druckt das Programm Falsch Passwort und wenn die ID nicht existiert, druckt das Programm Falsche ID
#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; } }
AUSGABE:
Plese Enter Your ID: 500 Enter your password: 000 Welcome Dear Programmer
- In dem gegebenen Programm haben wir zwei initialisierte Variablen erklärt:ID und Passwort
- Ein äußeres Schalterkonstrukt wird verwendet, um den in die Variable ID eingegebenen Wert zu vergleichen. Es führt den Anweisungsblock aus, der dem übereinstimmenden Fall zugeordnet ist (wenn ID==500).
- Wird die Blockanweisung mit der übereinstimmenden Groß-/Kleinschreibung ausgeführt, wird ein innerer Schalter verwendet, um die in die Variable passwort eingegebenen Werte zu vergleichen und die mit der übereinstimmenden Groß-/Kleinschreibung verknüpften Anweisungen auszuführen (wenn Passwort==000).
- Andernfalls löst der Schalterfall den Standardfall aus und gibt den entsprechenden Text bezüglich der Programmgliederung aus.
Warum brauchen wir eine Switch-Hülle?
Es gibt ein potenzielles Problem mit der if-else-Anweisung, nämlich dass die Komplexität des Programms zunimmt, wenn die Anzahl der alternativen Pfade zunimmt. Wenn Sie mehrere if-else-Konstrukte im Programm 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 switch-Anweisungen
- Ein Ausdruck muss immer zu einem Ergebnis ausgeführt werden.
- Fallbezeichnungen müssen konstant und eindeutig sein.
- Groß-/Kleinschreibung muss mit einem Doppelpunkt ( :) enden.
- Ein Break-Schlüsselwort muss in jedem Fall vorhanden sein.
- Es kann nur ein Standardlabel geben.
- Wir können mehrere switch-Anweisungen verschachteln.
Zusammenfassung
- Ein Switch ist ein Entscheidungsfindungskonstrukt in „C.“
- Ein Schalter wird in einem Programm verwendet, in dem mehrere Entscheidungen involviert sind.
- Ein Schalter muss einen ausführbaren Testausdruck enthalten.
- Jeder Fall muss ein break-Schlüsselwort enthalten.
- Fallbezeichnung muss konstant und eindeutig sein.
- Die Standardeinstellung ist optional.
- Mehrere switch-Anweisungen können ineinander verschachtelt werden.
C Sprache
- C#-switch-Anweisung
- C++ do…while-Schleife mit Beispielen
- C++ Switch Case-Anweisung mit BEISPIEL
- C++-Zeiger mit Beispielen
- Überladen von C++-Operatoren mit Beispielen
- C++ Funktionen mit Programmbeispielen
- Tutorial zu C#-Sammlungen mit Beispielen
- Python Print()-Anweisung:Drucken mit Beispielen
- Python String count() mit BEISPIELE
- Python-Funktion round() mit BEISPIELE