bestemmer den rækkefølge, som udsagn udføres i. Java tilbyder betingelser (, ), loops (, , ) og forgreningsudsagn (, , ) — plus moderne forbedringer som 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";
}
Den klassiske switch kræver break efter hvert case — at glemme det forårsager fall-through (udførelse fortsætter til næste case), en berygtet fejlkilde.
// 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";
};
Den moderne switch expression eliminerer fall-through, kan returnere en værdi og er renere — foretrukket i ny kode.
// 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 afslutter en loop, continue springer til næste iteration, return afslutter metoden, og mærkede breaks kan afslutte indlejrede loops på én gang.
Kontrolflow er den grundlæggende mekanisme til at udtrykke logik og beslutninger i ethvert program — enhver ikke-triviel metode bruger det.
At forstå konstruktionerne og deres nuancer er essentielt: switch fall-through gotcha (og den sikrere moderne switch expression), forskellen mellem while og do-while (kør mindst én gang), for-each for ren samlingiteration og forgreningsudsagn (inklusive mærkede breaks til indlejrede loops).
At mestre disse — og at foretrække de moderne, mindre fejlbillige former (switch expressions, for-each) — er grundlæggende for at skrive korrekt, læsbart Java-logik og undgå almindelige kontrolflow-fejl.