JAVA

SwitchCase seit Java 12

2023-09-16 | credit: Jaroslav Šimček

Overview

Java lebt und entwickelt sich unaufhörlich weiter. Das zeigt sich gerade auch bei der Syntax zum switchCase-Mechanismis, wo wir seit Version 12 ein nices Syntax-Cleanup erhalten haben. Wie das aussieht, siehst du hier. 

vor Java 12

Sehen wir uns direkt mal ein Beispiel für switchCase in Java an, wie es vor der Version 12 üblich war: 

int n = 1;
String farbe = "";

switch(n){

	case 0:

	case 1:
        farbe = "grün";
        break;

    case 2:

    case 3:
        farbe = "rot";
        break;

    default:
        farbe = "keine Farbe";
}

System.out.println(farbe); // grün

Diese Syntax, die du sicher gut kennst, wurde der Programmiersprache C entlehnt und wirkte schon immer ziemlich sperrig: Mehrere Fälle müssen durch mehrere cases ausgedrückt werden und wir müssen umständich mit break arbeiten (sonst flutscht die Hälfte durch). Das alles war eine Einladung für Bugs. 

Harter Stoff, oder?

SwitchCase ab Java Version 12

Sehen wir uns also jetzt den switchCase-Mechanismus von oben in der cleaneren Syntax in Java 12+ an: 

int n = 1;
String farbe = "";

switch(n){
	case 0,1 -> farbe = "grün";
	case 2,3 -> farbe = "rot";
	default ->  farbe =  "keine Farbe";
}

System.out.println(farbe); // grün

Die Vorteile sind sofort klar:

  • Mehrere cases können kommasepariert zusammengefasst werden
  • es sind keine breaks mehr nötig

Dadurch wirkt der Code übersichtich und viel verständlicher. 

Noch kürzer

Tatsächlich können wir die switchCase Expression noch kompakter bauen, und zwar dann, wenn sie benutzt wird, um einen Wert zuzuweisen: 

int n = 1;
String farbe = switch(n){
	case 0,1 -> "grün";
	case 2,3 -> "rot";
	default ->  "keine Farbe";
};

System.out.println(farbe); // grün

Vergiss auf keinen Fall das Semikolon am Ende des Gesamtausdrucks. 

Mehrere Anweisungen für die cases

Wenn du für einen Fall-Eintritt nur eine Anweisung ausführen möchtest, benötigst du keine geschweiften Klammern. So machen wir es in unseren Beispielen oben. 

Sind es allerdings mehrere Anweisungen, die ausgeführt werden sollen, dann sind die geschweiften Klammern Pflicht: 

int n = 1;
String farbe = "";
switch(n){
	case 0,1 -> {farbe = "grün"; System.out.println("Alles grün?");} // Mehrere Anweisungen
	case 2,3 -> farbe = "rot";
	default ->  farbe =  "keine Farbe";
};

System.out.println(farbe); // grün
Werbung

Java lernen

Werde zum Java Profi!

PHP Lernen

Lerne serverbasierte Programmierung

JavaScript lernen

Skille dein Webcoding

FALCONBYTE.NET

Handmade with 🖤️

© 2018-2023 Stefan E. Heller

Impressum | Datenschutz | Changelog

Falconbyte Youtube Falconbyte GitHub facebook programmieren lernen twitter programmieren lernen discord programmieren lernen