Die Switch-Anweisung
Erklärung
Darstellung im Struktogramm und Syntax
https://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html
switch (Ausdruck) {
case Wert1:
Anweisungsblock1
break;
case Wert2:
Anweisungsblock2
break;
...
default:
AnweisungsblockN
}
- Es ist gute Praxis, den
default-Block am Ende zu schreiben, aber nicht zwingend nötig.
Beispiel
char foo = 'b';
switch (foo) {
case 'a':
System.out.println("Chose game: A");
break;
case 'b':
System.out.println("Chose game: B");
break;
// ...
default:
System.out.println("No valid game chosen.");
}
Aufgaben
S: Aufgaben zur Syntax
Wähle alle Java-Schlüsselwörter aus, die in der Switch-Anweisung im Beispiel oben vorkommen.
Finde die vier typischerweise in einer witch-Anweisung verwendeten Schlüsselwörter:
Finde mit möglichst wenigen Versuchen das versteckte Schlüsselwort, das in der Switch-Anweisung im Beispiel oben vorkommt.
G: Aufgaben zur grundlegenden Verwendung
Gegeben ist der folgende Codeausschnitt. Ergänze den Code, sodass sich eine korrete Switch-Anweisung ergibt.
Schreibe ein Leerzeichen vor die runden Klammern.
int age = 15;
// Lücke 1
{
case 17:
System.out.println("Almost full-aged.");
break;
case 18:
System.out.println("Full-aged.");
break;
case 19:
System.out.println("Full-aged already");
break;
// Lücke 2
System.out.println("Other age than 16, 17 or 18 chosen.);
}
Analysiere die Methode main im folgenden Codeausschnitt und gib an, was das folgende Programm auf der Konsole ausgibt.
public static void main(String[] args) {
int month = 11;
String monthText;
switch (month) {
case 1:
monthText = "January";
break;
case 2:
monthText = "February";
break;
case 3:
monthText = "March";
break;
case 4:
monthText = "April";
break;
case 5:
monthText = "May";
break;
case 6:
monthText = "June";
break;
case 7:
monthText = "July";
break;
case 8:
monthText = "August";
break;
case 9:
monthText = "September";
break;
case 10:
monthText = "October";
break;
case 11:
monthText = "Movember";
break;
case 12:
monthText = "December";
break;
default:
monthText = "Incorrect number for month!";
break;
}
System.out.println(monthText);
}
E: Aufgaben zur erweiterter Verwendung
Im folgenden Codeausschnitt werden Fälle zusammengefasst. Gib an, bei welchen Werten von foo die Methode doSomething() aufgerufen wird.
switch (foo) {
case 0:
case 1:
doSomething();
break;
case 2:
doSomethingElse();
break;
default:
doSomeOtherThing();
break;
}
Im folgenden Codeausschnitt wurde das Break-Statement weggelassen. Gib an, welche Methoden in der Switch-Anweisung aufgerufen werden, wenn die Variable foo den Wert 1 hat.
switch (foo) {
case 1:
doSomething();
/* falls through */
case 2:
doSomethingElse();
break;
default:
doSomeOtherThing();
break;
}
F: Aufgaben zu Fallstricken
Welche Datentypen kann eine Switch-Anweisung überprüfen?
Hilfe: Nutze die oben verlinkte Java-Dokumentation.