fiebig.schule

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.

  1. {T{switch (age)}}
  2. {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{ 1 -1 }} {c{! 0 0 }} {c{! 1 1 }} {c{ 2 2 }} {c{c 3 3 }}

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.

Die Switch-Anweisung
CC BY-NC 4.0 by fiebig.schule