bestimmt die Reihenfolge, in der Anweisungen ausgeführt werden. Java bietet Bedingungen (, ), Schleifen (, , ) und Verzweigungsanweisungen (, , ) — plus moderne Verbesserungen wie switch expressions.
ifswitchforwhiledo-whilebreakcontinuereturnif (score >= 90) {
grade = "A";
} else if (score >= 80) {
grade = "B";
} else {
grade = "F";
}
// ternary — concise if/else for a value
String status = (age >= 18) ? "adult" : "minor";
switch (day) {
case 1: name = "Mon"; break; // ⚠️ break needed — else it FALLS THROUGH
case 2: name = "Tue"; break;
default: name = "Unknown";
}
Der klassische switch erfordert break nach jedem case — es zu vergessen, verursacht fall-through (die Ausführung geht zum nächsten case über), eine notorische Fehlerquelle.
// arrow syntax: no fall-through, returns a value, more concise
String name = switch (day) {
case 1 -> "Mon";
case 2 -> "Tue";
case 6, 7 -> "Weekend"; // multiple labels
default -> "Unknown";
};
Der moderne switch expression eliminiert fall-through, kann einen Wert zurückgeben und ist sauberer — bevorzugt in neuem Code.
// for — known iteration count
for (int i = 0; i < 10; i++) { ... }
// enhanced for-each — iterate a collection/array
for (String item : items) { ... }
// while — condition checked BEFORE each iteration
while (condition) { ... }
// do-while — body runs at least ONCE (condition checked after)
do { ... } while (condition);
for (int i = 0; i < 10; i++) {
if (i == 5) break; // exit the loop entirely
if (i % 2 == 0) continue; // skip to the next iteration
}
return result; // exit the method
// labeled break — exit nested loops
outer:
for (...) {
for (...) {
if (found) break outer; // breaks BOTH loops
}
}
break beendet eine Schleife, continue springt zur nächsten Iteration, return beendet die Methode, und benannte breaks können verschachtelte Schleifen auf einmal beenden.
Kontrollfluss ist der grundlegende Mechanismus, um Logik und Entscheidungen in jedem Programm auszudrücken — jede nicht-triviale Methode verwendet ihn.
Das Verständnis der Konstrukte und ihrer Feinheiten ist unerlässlich: die switch fall-through Falle (und die sicherere moderne switch expression), der Unterschied zwischen while und do-while (mindestens einmal ausführen), for-each für saubere Sammlungsiteration und Verzweigungsanweisungen (einschließlich benannter breaks für verschachtelte Schleifen).
Die Beherrschung dieser — und der Vorrang für die modernen, weniger fehleranfälligen Formen (switch expressions, for-each) — ist grundlegend für das Schreiben von korrekter, lesbarer Java-Logik und das Vermeiden häufiger Kontrollflussfehler.