ifadelerin hangi sırada yürütüldüğünü belirler. Java koşullu ifadeler (, ), döngüler (, , ) ve dallanma ifadeleri (, , ) sağlar — artı switch expressions gibi modern iyileştirmeler.
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";
}
Klasik switch her case'den sonra break gerektirir — bunu unutmak fall-through (yürütme bir sonraki case'e devam eder) ile sonuçlanır, meşhur bir hata kaynağı.
// 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";
};
Modern switch expression fall-through'u ortadan kaldırır, bir değer döndürebilir ve daha temizdir — yeni kodda tercih edilir.
// 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 döngüyü çıkarır, continue bir sonraki iterasyona atlar, return metodu çıkarır ve etiketlenmiş breaks iç içe döngülerden aynı anda çıkabilir.
Kontrol akışı, herhangi bir programda mantık ve kararları ifade etmenin temel mekanizması — her önemsiz olmayan metod bunu kullanır.
Yapıları ve inceliklerini anlamak gereklidir: switch fall-through hatasına dikkat (ve daha güvenli modern switch expression), while ve do-while arasındaki fark (en az bir kez çalışır), for-each koleksiyonun temiz iterasyonu için ve dallanma ifadeleri (iç içe döngüler için etiketlenmiş breaks dahil).
Bunlara hakim olmak — ve modern, daha az hataya açık formları (switch expressions, for-each) tercih etmek — doğru, okunabilir Java mantığı yazmak ve yaygın kontrol akışı hatalarından kaçınmak için temeldir.