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);