1. Der Multiple-Choice-Operator:switch
Java hat einen weiteren interessanten Operator, den es von seinem Großvater (C++) geerbt hat. Wir sprechen über die switch
Aussage. Wir könnten es auch als Multiple-Choice-Operator bezeichnen. Es sieht etwas umständlich aus:
switch(expression)
{
case value1: code1;
case value2: code2;
case value3: code3;
}
In den Klammern wird ein Ausdruck oder eine Variable angegeben. Wenn der Wert des Ausdrucks lautet value1
, beginnt die Java-Maschine mit der Ausführung code1
. Wenn der Ausdruck gleich ist value2
, springt die Ausführung zu code2
. Wenn der Ausdruck gleich ist value3
, code3
wird er ausgeführt.
Beispiel:
Code | Konsolenausgabe |
---|---|
|
|
2. break
Aussage inswitch
Ein wichtiges Merkmal einer switch
Anweisung besteht darin, dass das Programm einfach zur erforderlichen Zeile (zum erforderlichen Codeblock) springt und dann alle Codeblöcke bis zum Ende der Anweisung ausführt switch
. Nicht nur der Codeblock, der dem Wert in entspricht switch
, sondern alle Codeblöcke bis zum Ende von switch
.
Beispiel:
Code | Konsolenausgabe |
---|---|
|
|
Bei einer Temperatur von 36 °C gibt das Programm die switch
Anweisung ein, springt zum ersten Codeblock und führt ihn aus (der erste Fall) und führt dann fröhlich die restlichen Codeblöcke aus.
Wenn Sie nur einen Codeblock ausführen möchten – den Codeblock, der dem übereinstimmenden Fall zugeordnet ist –, müssen Sie den Block mit einer break
Anweisung beenden;
Beispiel:
Code | Konsolenausgabe |
---|---|
|
|
break
Sie können den letzten Fall der Anweisung weglassen switch
, da dieser Block der letzte mit oder ohne break-Anweisung ist.
3. Standardaktion:default
Ein weiterer wichtiger Punkt. Was passiert, wenn keiner der in der switch
Liste aufgeführten Fälle mit dem Ausdruck in Klammern übereinstimmt?
Wenn kein passender Fall gefunden wird, wird der Rest der switch
Anweisung übersprungen und das Programm setzt die Ausführung nach der geschweiften Klammer am Ende der switch
Anweisung fort.
Allerdings können Sie eine switch
Anweisung auch dazu bringen, sich wie der else-Zweig in einer if-else
Anweisung zu verhalten. Verwenden Sie dazu das default
Schlüsselwort.
Wenn keines der case
s im switch
Block mit dem Wert des Ausdrucks übereinstimmt und es switch
einen default
Block gibt, wird der Standardblock ausgeführt. Beispiel:
Code | Konsolenausgabe |
---|---|
|
|
4. Vergleichen switch
undif-else
Die switch
Aussage ist einer Aussage etwas ähnlich if-else
, nur komplizierter.
Sie können den Code einer switch
Anweisung jederzeit in mehrere if
Anweisungen umschreiben. Beispiel:
Code mit Schalter | Code mit if-else |
---|---|
|
|
Der Code auf der linken Seite funktioniert genauso wie der Code auf der rechten Seite.
Eine Kette mehrerer if-else
Anweisungen ist vorzuziehen, wenn eine if
Anweisung in jedem einzelnen Fall verschiedene komplexe Ausdrücke enthält.
5. Welche Ausdrücke können in einer Aussage verwendet werden switch
?
case
Nicht alle Typen können als Beschriftungen in einer Anweisung verwendet werden switch
. Sie können Literale der folgenden Typen verwenden:
- Ganzzahltypen:
byte
,short
,int
,long
char
String
- jede
enum
Art
Sie können keine anderen Typen als Fallbeschriftungen verwenden.
Beispiel für die Verwendung einer enum
Inside- switch
Anweisung:
Day day = Day.MONDAY;
switch (day)
{
case MONDAY:
System.out.println("Monday");
break;
case TUESDAY:
System.out.println("Tuesday");
break;
case WEDNESDAY:
System.out.println("Wednesday");
break;
case THURSDAY:
System.out.println("Thursday");
break;
case FRIDAY:
System.out.println("Friday");
break;
case SATURDAY:
System.out.println("Saturday");
break;
case SUNDAY:
System.out.println("Sunday");
break;
}
Hinweis: Wenn Sie eine enum
Inside- switch
Anweisung verwenden, müssen Sie den Klassennamen nicht vor jeden Wert in den case
Beschriftungen schreiben. Es reicht aus, nur den Wert zu schreiben.