C# Switch Statement meistern: Syntax, Beispiele & Best Practices
C# switch Anweisung
Entdecken Sie, wie Sie komplexe if-else Ketten durch eine saubere, lesbare switch Anweisung in C# ersetzen – komplett mit praktischen Beispielen.
Switch-Anweisungen vereinfachen Entscheidungen, indem sie einen einzelnen Ausdruck auswerten und den passenden case Block ausführen. Im Vergleich zu einer langen if-else Leiter ist die switch Syntax prägnanter und wartbarer.
Die grundlegende Struktur ist:
switch (variableOrExpression) {
case value1:
// Code für value1
break;
case value2:
// Code für value2
break;
// …
default:
// Code wenn kein case passt
}
Wenn der Ausdruck einem case entspricht, läuft der entsprechende Block bis ein break die switch beendet. Passt kein case, führt der default Block aus, was einem else Zweig entspricht.
Ohne break würde die Ausführung „durchfallen“ und in die nachfolgenden cases fortfahren – oft ein Bug. Für einen tieferen Einblick in C# break Anweisung siehe die offizielle Dokumentation.
Beispiel 1: Vokale identifizieren
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;
}
}
}
}
Programmausgabe:
Enter an alphabet X Not a vowel
Hier wird die Benutzereingabe in Kleinbuchstaben umgewandelt und gegen Vokale geprüft. Passt kein Vokal, wird die Default-Meldung angezeigt.
Da alle Vokal-cases die gleiche Aktion ausführen, können sie gruppiert werden:
Beispiel 2: Gruppierte Cases
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 bleibt identisch, aber der Code ist deutlich sauberer.
Switch-Anweisungen sind auf bestimmte Datentypen beschränkt:
- Primitive Typen (bool, char, integrale Typen)
- Enumerationen (enum)
- String
- Nullable Versionen der oben genannten
Beispiel 3: Einfacher Rechner
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;
}
}
}
}
Beispielausführung:
Enter first number: -13.11 Enter second number: 2.41 Enter operator (+, -, *, /): * -13.11 * 2.41 = -31.5951
Dieser Rechner nimmt zwei Operanden und einen Operator entgegen, führt die gewünschte Operation per switch aus. Eingaben werden über ReadLine() und Read() gelesen; mehr zu Ein-/Ausgabe in C# Basic Input and Output.
Während eine if-else Kette den switch ersetzen könnte, bietet dieser klarere Absicht und schnellere Ausführung für diskrete Werte.
C Sprache
- Schaltung mit Schalter: Praktischer Leitfaden zu grundlegenden elektrischen Schaltungen
- Kommutationsdioden-Experiment: Induktiven Rückschlag mit Neonlampe unterdrücken
- Elektrische Schalter verstehen: Typen, Funktionen und Anwendungen
- Kontaktprellen bei mechanischen Schaltern eliminieren
- Multimeter: Von Analog zu Digital – Ein umfassender Leitfaden
- C# Break Statement: Wie und wann man es einsetzt
- C# Continue Statement meistern: Schleifeniterationen effektiv überspringen
- Python pass-Statement meistern: Praxisleitfaden
- C++ switch‑case meistern: Syntax, Einsatz und Praxisbeispiele
- C-Grundsyntax meistern: Tokens, Struktur und Semikolons