Switch-Anweisungen in Java
Swipe um das Menü anzuzeigen
Bisher waren if, else und else if die Hauptwerkzeuge zur Behandlung verschiedener Situationen. Diese eignen sich hervorragend zum Überprüfen von Bedingungen, Bereichen oder Vergleichen.
Manchmal vergleichen wir jedoch keine Bereiche – wir möchten lediglich eine Variable mit mehreren exakten Werten abgleichen. Zum Beispiel:
- ein Kunde wählt eine Zahlungsmethode aus;
- eine Kaffee-Bestellung hat eine bestimmte Abholart;
- ein Treueprogramm-Mitglied wählt eine Prämienstufe.
Hier kommen switch-Anweisungen zum Einsatz – sie vergleichen einen Wert mit mehreren exakten Übereinstimmungen auf eine übersichtlichere und strukturierte Weise.
Struktur
switch (variable) {
case "value1" -> {
// code
}
case "value2" -> {
// code
}
default -> {
// fallback code
}
}
Java prüft jeden case der Reihe nach, bis eine Übereinstimmung gefunden wird.
Beispiel
Main.java
1234567891011121314151617181920212223242526package com.example; public class Main { public static void main(String[] args) { String pickupType = "delivery"; switch (pickupType) { case "pickup": System.out.println("Your coffee will be ready at the counter"); break; case "delivery": System.out.println("Your coffee is on the way"); break; case "dine-in": System.out.println("Enjoy your coffee inside the cafe"); break; default: System.out.println("Unknown order type"); break; } } }
Java prüft pickupType Fall für Fall — "pickup" passt nicht, "delivery" passt, daher wird "Your coffee is on the way" ausgegeben und das break beendet den switch sofort. Der default-Block am Ende funktioniert wie ein abschließendes else — er wird nur ausgeführt, wenn keine der Fälle zutrifft.
Java 14+ — Neue Switch-Syntax
Ab Java 14 wurde eine neue Syntax mit dem ->-Pfeil eingeführt:
switch (pickupType) {
case "pickup" -> System.out.println("Your coffee will be ready at the counter");
case "delivery" -> System.out.println("Your coffee is on the way");
case "dine-in" -> System.out.println("Enjoy your coffee inside the cafe");
default -> System.out.println("Unknown order type");
}
Was sich geändert hat:
- kein
breakmehr nötig; - verwendet
->statt:; - jeder Fall ist automatisch isoliert — kein Risiko für Fall-Through;
- übersichtlicher und leichter lesbar.
Beide Versionen funktionieren gleich — die neue Syntax ist nur moderner und sicherer.
Eine gute Faustregel:
if/else iffür Vergleiche und Bereiche verwenden;switchverwenden, wenn ein Wert mit vielen exakten Optionen verglichen wird.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Switch-Anweisungen in Java
Bisher waren if, else und else if die Hauptwerkzeuge zur Behandlung verschiedener Situationen. Diese eignen sich hervorragend zum Überprüfen von Bedingungen, Bereichen oder Vergleichen.
Manchmal vergleichen wir jedoch keine Bereiche – wir möchten lediglich eine Variable mit mehreren exakten Werten abgleichen. Zum Beispiel:
- ein Kunde wählt eine Zahlungsmethode aus;
- eine Kaffee-Bestellung hat eine bestimmte Abholart;
- ein Treueprogramm-Mitglied wählt eine Prämienstufe.
Hier kommen switch-Anweisungen zum Einsatz – sie vergleichen einen Wert mit mehreren exakten Übereinstimmungen auf eine übersichtlichere und strukturierte Weise.
Struktur
switch (variable) {
case "value1" -> {
// code
}
case "value2" -> {
// code
}
default -> {
// fallback code
}
}
Java prüft jeden case der Reihe nach, bis eine Übereinstimmung gefunden wird.
Beispiel
Main.java
1234567891011121314151617181920212223242526package com.example; public class Main { public static void main(String[] args) { String pickupType = "delivery"; switch (pickupType) { case "pickup": System.out.println("Your coffee will be ready at the counter"); break; case "delivery": System.out.println("Your coffee is on the way"); break; case "dine-in": System.out.println("Enjoy your coffee inside the cafe"); break; default: System.out.println("Unknown order type"); break; } } }
Java prüft pickupType Fall für Fall — "pickup" passt nicht, "delivery" passt, daher wird "Your coffee is on the way" ausgegeben und das break beendet den switch sofort. Der default-Block am Ende funktioniert wie ein abschließendes else — er wird nur ausgeführt, wenn keine der Fälle zutrifft.
Java 14+ — Neue Switch-Syntax
Ab Java 14 wurde eine neue Syntax mit dem ->-Pfeil eingeführt:
switch (pickupType) {
case "pickup" -> System.out.println("Your coffee will be ready at the counter");
case "delivery" -> System.out.println("Your coffee is on the way");
case "dine-in" -> System.out.println("Enjoy your coffee inside the cafe");
default -> System.out.println("Unknown order type");
}
Was sich geändert hat:
- kein
breakmehr nötig; - verwendet
->statt:; - jeder Fall ist automatisch isoliert — kein Risiko für Fall-Through;
- übersichtlicher und leichter lesbar.
Beide Versionen funktionieren gleich — die neue Syntax ist nur moderner und sicherer.
Eine gute Faustregel:
if/else iffür Vergleiche und Bereiche verwenden;switchverwenden, wenn ein Wert mit vielen exakten Optionen verglichen wird.
Danke für Ihr Feedback!