Switch-Case-Anweisung
Swipe um das Menü anzuzeigen
Umgang mit mehreren unterschiedlichen Bedingungen
Wenn viele Bedingungen überprüft werden müssen, ist die Verwendung mehrerer if-else-Ketten oft nicht praktisch.
Zum Beispiel:
Main.java
12345678910111213141516171819package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `if` statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
Es ist erkennbar, dass dies weder übersichtlich noch professionell wirkt. Für solche Fälle stellt Java die switch-case-Anweisung zur Verfügung.
switch-case-Anweisung
Die switch-case-Anweisung besteht aus mehreren Teilen:
Main.java
123456789switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
Im obigen Code ist zu sehen, dass Switch-Blöcke verwendet werden, um Operationen selektiv auszuführen. Dabei wird auf den Ausdruck zurückgegriffen, der sich etwas von einer Bedingung unterscheidet. Hier wird ein Wert oder ein Ausdruck eingefügt, zum Beispiel 10 / 2. In diesem Fall wird der Case-Block mit der Signatur case 5 ausgeführt, da der Ausdruck oben 5 ergibt.
Es kann hier auch eine Bedingung verwendet werden. In diesem Fall muss ein boolescher Ausdruck im Ausdrucksblock geschrieben werden, zum Beispiel: 10 / 2 == 5. Danach werden zwei Cases darunter geschrieben:
case true:
case false:
Diese Struktur unterscheidet sich jedoch kaum von einem normalen if-else.
Das Schlüsselwort "break"
Dieses Schlüsselwort wird verwendet, um die Ausführung einer switch-case-Anweisung zu beenden und deren Block zu verlassen. Dieses Wort wird häufig in Schleifen verwendet, auf die in den folgenden Kapiteln eingegangen wird. Das Schlüsselwort wird eingesetzt, wenn ein Codeblock verlassen und dessen Ausführung gestoppt werden soll.
Nun verbessern wir den oben geschriebenen Code mit der switch-case-Anweisung:
Main.java
123456789101112131415161718192021222324package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("There is no matching value"); } } }
Es ist erkennbar, dass der Code deutlich übersichtlicher und leichter lesbar sowie erweiterbar geworden ist. Es ist nicht mehr notwendig, für jede zusätzliche Bedingung eine neue if-Anweisung zu schreiben. Stattdessen kann einfach ein weiterer Case-Block zur switch-case statement-Anweisung hinzugefügt werden.
Betrachten wir das Schema des switch-case-Blocks:
Wie zu sehen ist, kann es beliebig viele Cases geben. Jeder Case benötigt eine eigene Bedingung und einen eigenen Code, der ausgeführt wird, wenn das Programm den jeweiligen Case-Block erreicht.
Es ist ratsam, das Schlüsselwort break zu verwenden, da das Programm den Switch-Block nicht verlässt, bis alle Case-Blöcke ausgeführt wurden. Der Default-Block wird ausgeführt, wenn keiner der Case-Blöcke betreten wurde oder das break-Schlüsselwort nicht verwendet wurde.
Hier ist ein weiteres Beispiel ohne break-Schlüsselwörter:
Main.java
1234567891011121314151617181920package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("There is no matching value"); } } }
Wir haben mehrere Werte erhalten, die von unseren Erwartungen abweichen. Zusätzlich haben wir Informationen aus den Blöcken case 10 und default erhalten. Genau aus diesem Grund verwenden wir das Schlüsselwort break nach jedem Block. So verlässt das Programm die switch-Anweisung und setzt die Ausführung fort.
1. Was wird auf der Konsole ausgegeben?
2. Warum benötigen wir das break-Schlüsselwort?
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-Case-Anweisung
Umgang mit mehreren unterschiedlichen Bedingungen
Wenn viele Bedingungen überprüft werden müssen, ist die Verwendung mehrerer if-else-Ketten oft nicht praktisch.
Zum Beispiel:
Main.java
12345678910111213141516171819package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `if` statement int a = 30; if (a == 10) { System.out.println(10); } else if (a == 20) { System.out.println(20); } else if (a == 30) { System.out.println(30); } else if (a == 40) { System.out.println(40); } else { System.out.println(a); } } }
Es ist erkennbar, dass dies weder übersichtlich noch professionell wirkt. Für solche Fälle stellt Java die switch-case-Anweisung zur Verfügung.
switch-case-Anweisung
Die switch-case-Anweisung besteht aus mehreren Teilen:
Main.java
123456789switch (expression) { case value_1: // Code to be executed if expression matches `value_1` break; // Break is used to exit the `switch` statement. case value_2: // Code to be executed if expression matches `value_2` break; // Break is used to exit the `switch` statement. ............ default: // Code to be executed if no cases match // Optional, but executed if no other case matches }
Im obigen Code ist zu sehen, dass Switch-Blöcke verwendet werden, um Operationen selektiv auszuführen. Dabei wird auf den Ausdruck zurückgegriffen, der sich etwas von einer Bedingung unterscheidet. Hier wird ein Wert oder ein Ausdruck eingefügt, zum Beispiel 10 / 2. In diesem Fall wird der Case-Block mit der Signatur case 5 ausgeführt, da der Ausdruck oben 5 ergibt.
Es kann hier auch eine Bedingung verwendet werden. In diesem Fall muss ein boolescher Ausdruck im Ausdrucksblock geschrieben werden, zum Beispiel: 10 / 2 == 5. Danach werden zwei Cases darunter geschrieben:
case true:
case false:
Diese Struktur unterscheidet sich jedoch kaum von einem normalen if-else.
Das Schlüsselwort "break"
Dieses Schlüsselwort wird verwendet, um die Ausführung einer switch-case-Anweisung zu beenden und deren Block zu verlassen. Dieses Wort wird häufig in Schleifen verwendet, auf die in den folgenden Kapiteln eingegangen wird. Das Schlüsselwort wird eingesetzt, wenn ein Codeblock verlassen und dessen Ausführung gestoppt werden soll.
Nun verbessern wir den oben geschriebenen Code mit der switch-case-Anweisung:
Main.java
123456789101112131415161718192021222324package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 30; switch (a) { case 10: System.out.println(10); break; case 20: System.out.println(20); break; case 30: System.out.println(30); break; case 40: System.out.println(40); break; default: System.out.println("There is no matching value"); } } }
Es ist erkennbar, dass der Code deutlich übersichtlicher und leichter lesbar sowie erweiterbar geworden ist. Es ist nicht mehr notwendig, für jede zusätzliche Bedingung eine neue if-Anweisung zu schreiben. Stattdessen kann einfach ein weiterer Case-Block zur switch-case statement-Anweisung hinzugefügt werden.
Betrachten wir das Schema des switch-case-Blocks:
Wie zu sehen ist, kann es beliebig viele Cases geben. Jeder Case benötigt eine eigene Bedingung und einen eigenen Code, der ausgeführt wird, wenn das Programm den jeweiligen Case-Block erreicht.
Es ist ratsam, das Schlüsselwort break zu verwenden, da das Programm den Switch-Block nicht verlässt, bis alle Case-Blöcke ausgeführt wurden. Der Default-Block wird ausgeführt, wenn keiner der Case-Blöcke betreten wurde oder das break-Schlüsselwort nicht verwendet wurde.
Hier ist ein weiteres Beispiel ohne break-Schlüsselwörter:
Main.java
1234567891011121314151617181920package com.example; public class Main { public static void main(String[] args) { // You can change the value of the variable `a` to test the `switch` statement int a = 10; switch (a) { case 10: System.out.println(10); case 20: System.out.println(20); case 30: System.out.println(30); case 40: System.out.println(40); default: System.out.println("There is no matching value"); } } }
Wir haben mehrere Werte erhalten, die von unseren Erwartungen abweichen. Zusätzlich haben wir Informationen aus den Blöcken case 10 und default erhalten. Genau aus diesem Grund verwenden wir das Schlüsselwort break nach jedem Block. So verlässt das Programm die switch-Anweisung und setzt die Ausführung fort.
Danke für Ihr Feedback!