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
expression
verglichen wird. - Pause: Beendet den
switch
Block. 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
break
Anweisungen: Beziehe immerbreak
mit ein, es sei denn, du willst absichtlich durchfallen. Dies verhindert die unbeabsichtigte Ausführung der nachfolgenden Fälle. - Standardfall: Füge einen
default
Fall ein, um unerwartete Werte zu behandeln und die Robustheit des Codes zu verbessern. - Ausdrucksarten: Der Ausdruck
switch
kann vom Typbyte
,short
,int
,char
,String
oder eine Aufzählung sein. - Vermeide komplizierte Logik: Verwende
switch
für einfache Szenarien mit diskreten Werten. Für komplexe Bedingungen kannst du dieif-else
Anweisungen 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.