C # switch-Anweisung (mit Beispielen)

In diesem Artikel erfahren Sie mehr über die switch-Anweisung in C # und deren Verwendung anhand von Beispielen.

Die switch-Anweisung kann verwendet werden, um die if… else if-Anweisung in C # zu ersetzen. Der Vorteil der Verwendung von switch over if… else if Anweisung ist, dass die Codes mit switch viel sauberer und lesbarer aussehen.

Die Syntax der switch-Anweisung lautet:

 switch (Variable / Ausdruck) (case value1: // Anweisungen, die ausgeführt werden, wenn expression (oder variable) = value1 break; case value2: // Anweisungen, die ausgeführt werden, wenn expression (oder variable) = value1 break ausgeführt werden; ………………………: default: / / Anweisungen ausgeführt, wenn kein Fall übereinstimmt) 

Die switch-Anweisung wertet den Ausdruck (oder die Variable) aus und vergleicht seinen Wert mit den Werten (oder Ausdrücken) jedes Einzelfalls (Wert1, Wert2,…). Wenn der übereinstimmende Wert gefunden wird, werden die Anweisungen in diesem Fall ausgeführt.

Wenn jedoch keiner der oben genannten Fälle mit dem Ausdruck übereinstimmt, werden die Anweisungen im defaultBlock ausgeführt. Die Standardanweisung am Ende des Schalters ähnelt dem else-Block in der if else-Anweisung.

Ein Problem mit der switch-Anweisung besteht jedoch darin, dass, wenn der übereinstimmende Wert gefunden wird, alle darauf folgenden Anweisungen bis zum Ende des switch-Blocks ausgeführt werden.

Um dies zu vermeiden, verwenden wir breakam Ende eines jeden Falles eine Anweisung. Die break-Anweisung verhindert, dass das Programm nicht übereinstimmende Anweisungen ausführt, indem die Ausführung der switch-Anweisung beendet wird.

Weitere Informationen zur break-Anweisung finden Sie unter C # break-Anweisung.

Beispiel 1: C # switch-Anweisung

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': Console.WriteLine("Vowel"); break; case 'e': Console.WriteLine("Vowel"); break; case 'i': Console.WriteLine("Vowel"); break; case 'o': Console.WriteLine("Vowel"); break; case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Wenn wir das Programm ausführen, lautet die Ausgabe:

 Geben Sie ein Alphabet ein X Kein Vokal 

In diesem Beispiel wird der Benutzer aufgefordert, ein Alphabet einzugeben. Das Alphabet wird mithilfe der ToLower()Methode in Kleinbuchstaben umgewandelt, wenn es in Großbuchstaben geschrieben ist.

Anschließend prüft die switch-Anweisung, ob das vom Benutzer eingegebene Alphabet eines von ihnen ist a, e, i, o or u.

Wenn einer der Fälle übereinstimmt, Vowelwird er gedruckt, andernfalls wechselt das Steuerelement zum Standardblock und Not a vowelwird als Ausgabe gedruckt.

Da die Ausgabe für alle Vokale gleich ist, können wir die Fälle wie folgt verbinden:

Beispiel 2: C # switch-Anweisung mit gruppierten Fällen

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Die Ausgabe beider Programme ist gleich. Im obigen Programm drucken alle Vokale die Ausgabe Vowelund brechen von der switch-Anweisung ab.

Obwohl die switch-Anweisung den Code sauberer aussehen lässt als if… else if-Anweisung, ist switch auf die Arbeit mit begrenzten Datentypen beschränkt. Die Switch-Anweisung in C # funktioniert nur mit:

  • Primitive Datentypen: Bool, Char und Integraltyp
  • Aufzählungsarten (Aufzählung)
  • String-Klasse
  • Nullable Typen der oben genannten Datentypen

Beispiel 3: Einfaches Taschenrechnerprogramm mit C # switch-Anweisung

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char op; double first, second, result; Console.Write("Enter first number: "); first = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter second number: "); second = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter operator (+, -, *, /): "); op = (char)Console.Read(); switch(op) ( case '+': result = first + second; Console.WriteLine("(0) + (1) = (2)", first, second, result); break; case '-': result = first - second; Console.WriteLine("(0) - (1) = (2)", first, second, result); break; case '*': result = first * second; Console.WriteLine("(0) * (1) = (2)", first, second, result); break; case '/': result = first / second; Console.WriteLine("(0) / (1) = (2)", first, second, result); break; default: Console.WriteLine("Invalid Operator"); break; ) ) ) ) 

Wenn wir das Programm ausführen, lautet die Ausgabe:

 Geben Sie die erste Nummer ein: -13.11 Geben Sie die zweite Nummer ein: 2.41 Geben Sie den Operator ein (+, -, *, /): * -13.11 * 2.41 = -31.5951 

Das obige Programm verwendet zwei Operanden und einen Operator als Eingabe vom Benutzer und führt die Operation basierend auf dem Operator aus.

Die Eingaben werden vom Benutzer mit der Methode ReadLine()und übernommen Read(). Weitere Informationen finden Sie unter C # Basic Input and Output.

Das Programm verwendet die switch case-Anweisung zur Entscheidungsfindung. Alternativ können wir if-else if-Leiter verwenden, um denselben Vorgang auszuführen.

Interessante Beiträge...