Verzweigungen

Aus FI-Wiki

Verzweigungen in Java

if-Anweisung

Führt einen Block aus, wenn die Bedingung wahr ist.

int zahl = 10;
if (zahl > 0) {
    System.out.println("Die Zahl ist positiv.");
}

if-else-Anweisung

Führt einen alternativen Block aus, wenn die Bedingung **nicht** wahr ist.

int zahl = -5;
if (zahl >= 0) {
    System.out.println("Die Zahl ist positiv oder null.");
} else {
    System.out.println("Die Zahl ist negativ.");
}

if-else if-Kette

Für mehrere Bedingungen nacheinander.

int note = 3;
if (note == 1) {
    System.out.println("Sehr gut");
} else if (note == 2) {
    System.out.println("Gut");
} else if (note == 3) {
    System.out.println("Befriedigend");
} else {
    System.out.println("Andere Note");
}

switch-Anweisung

Geeignet für die Auswahl aus mehreren festen Werten.

int tag = 3;
switch (tag) {
    case 1:
        System.out.println("Montag");
        break;
    case 2:
        System.out.println("Dienstag");
        break;
    case 3:
        System.out.println("Mittwoch");
        break;
    default:
        System.out.println("Ein anderer Tag");
        break;
}

switch mit String

Seit Java 7 auch mit `String` möglich.

String farbe = "blau";
switch (farbe) {
    case "rot":
        System.out.println("Farbe ist rot");
        break;
    case "blau":
        System.out.println("Farbe ist blau");
        break;
    default:
        System.out.println("Unbekannte Farbe");
}

Ternärer Operator (?:)

Kurzform für einfache if-else-Ausdrücke. Syntax: `Bedingung ? Ausdruck_wenn_true : Ausdruck_wenn_false`

int zahl = 5;
String ergebnis = (zahl % 2 == 0) ? "Gerade" : "Ungerade";
System.out.println(ergebnis);

Neue switch-Expression (ab Java 14)

Erlaubt kompaktere und ausdrucksstärkere Schreibweise. Nutzen von `->`, mehreren Labels, und `yield`.

int tag = 2;
String wochentag = switch (tag) {
    case 1 -> "Montag";
    case 2 -> "Dienstag";
    case 3 -> "Mittwoch";
    case 4, 5 -> "Donnerstag oder Freitag";
    default -> "Wochenende";
};
System.out.println(wochentag);

Oder mit Block und `yield`:

int stunde = 14;
String zeit = switch (stunde) {
    case 6, 7, 8, 9 -> "Morgen";
    case 12, 13, 14 -> {
        System.out.println("Mittagspause!");
        yield "Mittag";
    }
    default -> "Andere Tageszeit";
};
System.out.println(zeit);