Die Switch-Anweisung
Erklärung
Syntax
switch (Ausdruck) {
case Wert1:
Anweisungsblock1
break;
case Wert2:
Anweisungsblock2
break;
...
default:
AnweisungsblockN
}
Beispiel
char foo = 'b';
switch (foo) {
case 'a':
System.out.println("Chose game: A");
break;
case 'b':
System.out.println("Chose game: A");
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.
{c{!break}} {c{while}} {c{!case}} {c{!switch}} {c{if}} {c{!default}}
Finde die vier typischerweise in einer witch-Anweisung verwendeten Schlüsselwörter:
{w{ a|S|s|y|t|b~~ r|W|D|c|d|B~~ d|I|E|d|e|R~~ a|T|F|d|e|E~~ w|C|A|S|E|A~~ p|H|U|c|d|K~~ i|y|L|z|d|l~~ y|z|T|r|m|q}}
Finde mit möglichst wenigen Versuchen das versteckte Schlüsselwort, das in der Switch-Anweisung im Beispiel oben vorkommt.
{v{switch|case|break|default}}
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.
- {T{switch (age)}}
- {T{default:}}
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.
{T{Movember}}
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.
{c{}} {c{!}} {c{!}} {c{}} {c{c}}
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.
{c{!doSomething()}} {c{!doSomethingElse()}} {c{doSomeOtherThing()}}
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?
{c{!byte}} {c{!short}} {c{!char}} {c{!int}} {c{long}} {c{float}} {c{double}} {c{!String}}
Hilfe: Nutze die oben verlinkte Java-Dokumentation.