menentukan urutan di mana pernyataan dijalankan. Java menyediakan kondisional (, ), gelung (, , ), dan pernyataan percabangan (, , ) — ditambah peningkatan modern seperti switch expression.
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 — melupakannya 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 gelung, continue melompat ke iterasi berikutnya, return keluar dari metode, dan break berlabel dapat keluar dari gelung bertingkat sekaligus.
Aliran kawalan adalah mekanisme dasar untuk mengekspresikan logika dan keputusan dalam program apa pun — setiap metode yang tidak sepele menggunakannya.
Memahami konstruk dan nuansanya sangat penting: gotcha fall-through switch (dan switch expression modern yang lebih aman), perbedaan antara while dan do-while (jalankan minimal sekali), for-each untuk iterasi koleksi yang bersih, dan pernyataan percabangan (termasuk break berlabel untuk gelung bertingkat).
Menguasai ini — dan lebih menyukai bentuk modern yang kurang rawan kesalahan (switch expression, for-each) — adalah dasar untuk menulis logika Java yang benar dan dapat dibaca serta menghindari bug aliran kawalan yang umum.