Java Switch-Anweisung
Die switch Anweisung in Java ist eine Kontrollflussanweisung, die die Ausführung eines Codeblocks unter mehreren Alternativen ermöglicht. Sie bietet eine lesbarere und effizientere Möglichkeit, eine Reihe von if-else Anweisungen zu schreiben, wenn derselbe Ausdruck mit verschiedenen Werten verglichen wird.
Verwendung
Die Anweisung switch wertet einen Ausdruck aus, vergleicht den Wert des Ausdrucks mit einer Reihe von case Labels und führt den Codeblock aus, der mit dem passenden case verbunden ist. Wenn keine case übereinstimmt, wird der default Block ausgeführt, falls er vorhanden ist.
Syntax
switch (expression) {
case value1:
// code block
break;
case value2:
// code block
break;
// more cases...
default:
// default code block
}
- Ausdruck: Eine Variable oder ein Ausdruck, der einmal ausgewertet wird.
- Wert1, Wert2, ...: Konstante Ausdrücke, mit denen die
expressionverglichen wird. - Pause: Beendet den
switchBlock. Ohne sie wird die Vollstreckung auf spätere Fälle verschoben. - Standard: Optionaler Block, der ausgeführt wird, wenn keine
caseübereinstimmt.
Beispiele
Beispiel 1: Basic switch Erklärung
public class SwitchExample {
public static void main(String[] args) {
int number = 2;
switch (number) {
case 1:
System.out.println("One");
break;
case 2:
System.out.println("Two");
break;
case 3:
System.out.println("Three");
break;
default:
System.out.println("Not in range");
}
}
}
In diesem Beispiel wertet die Anweisung switch die Variable number aus. Da number gleich 2 ist, wird die Ausgabe "Zwei" sein. Die Anweisung break verhindert ein Übergreifen auf nachfolgende Fälle.
Beispiel 2: switch mit Strings
public class SwitchStringExample {
public static void main(String[] args) {
String fruit = "Apple";
switch (fruit) {
case "Apple":
System.out.println("Fruit is Apple");
break;
case "Banana":
System.out.println("Fruit is Banana");
break;
default:
System.out.println("Unknown fruit");
}
}
}
Dieses Beispiel demonstriert die Verwendung einer switch Anweisung mit einer String. Die switch prüft den Wert von fruit, und da dieser "Apfel" ist, lautet die Ausgabe "Fruit is Apple".
Beispiel 3: switch ohne break
public class SwitchFallThroughExample {
public static void main(String[] args) {
int day = 3;
switch (day) {
case 1:
case 2:
case 3:
System.out.println("Weekday");
break;
case 4:
case 5:
System.out.println("Weekend");
break;
default:
System.out.println("Invalid day");
}
}
}
In diesem Beispiel werden mehrere case Labels verwendet, um denselben Codeblock auszuführen. Die Ausgabe lautet "Wochentag", weil day gleich 3 ist und die Anweisung break verhindert, dass die Ausführung zu den "Wochenend"-Fällen übergeht.
Tipps und bewährte Praktiken
- Verwende
breakAnweisungen: Beziehe immerbreakmit ein, es sei denn, du willst absichtlich durchfallen. Dies verhindert die unbeabsichtigte Ausführung der nachfolgenden Fälle. - Standardfall: Füge einen
defaultFall ein, um unerwartete Werte zu behandeln und die Robustheit des Codes zu verbessern. - Ausdrucksarten: Der Ausdruck
switchkann vom Typbyte,short,int,char,Stringoder eine Aufzählung sein. - Vermeide komplizierte Logik: Verwende
switchfür einfache Szenarien mit diskreten Werten. Für komplexe Bedingungen kannst du dieif-elseAnweisungen verwenden. - Java 12+ Erweiterungen: In Java 12 und höher ermöglichen Switch-Ausdrücke die Rückgabe von Werten und die Verwendung des Schlüsselworts
yield, um den Code zu straffen.