menentukan urutan pernyataan dieksekusi. Java menyediakan kondisional (, ), loop (, , ), dan pernyataan cabang (, , ) — plus peningkatan modern seperti 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";
}
switch klasik memerlukan break setelah setiap case — melupakan itu menyebabkan fall-through (eksekusi berlanjut ke case berikutnya), sumber bug yang terkenal.
// 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";
};
Switch expression modern menghilangkan fall-through, dapat mengembalikan nilai, dan lebih bersih — lebih disukai dalam kode baru.
// 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 keluar dari loop, continue melewati ke iterasi berikutnya, return keluar dari method, dan break berlabel dapat keluar dari loop bersarang sekaligus.
Control flow adalah mekanisme dasar untuk mengekspresikan logika dan keputusan dalam program apa pun — setiap method non-trivial menggunakannya.
Memahami konstruksi dan nuansa mereka sangat penting: switch fall-through gotcha (dan switch expression modern yang lebih aman), perbedaan antara while dan do-while (jalankan setidaknya sekali), for-each untuk iterasi koleksi yang bersih, dan pernyataan cabang (termasuk break berlabel untuk loop bersarang).
Menguasai ini — dan lebih menyukai bentuk modern, kurang rentan kesalahan (switch expressions, for-each) — adalah fundamental untuk menulis logika Java yang benar dan dapat dibaca serta menghindari bug kontrol-alur umum.