Java if-else ve switch-case Nedir? Karar Yapıları, Örnekler ve En Yaygın Hatalar

Bu yazıda Java karar yapıları olan if-else ve switch-case yapılarını anlaşılır örneklerle inceleyeceğiz. Ayrıca else-if sırası, break unutma, default kullanımı gibi en sık yapılan hataları da göstereceğiz.

java if else java switch case java karar yapıları else if sırası switch break unutma switch default java örnek kod

Java karar yapıları nedir?

if ve switch ifadeleri, programın “hangi durumda hangi kod çalışsın?” sorusuna cevap veren karar yapılarıdır. Program, verdiğiniz koşulu değerlendirir ve sonuca göre ilgili kod bloğunu çalıştırır.

if-else yapısı

Basit bir if yapısında parantez içindeki ifade boolean (true/false) olmalıdır:

if (kararIfadesi) {
    // karar doğruysa çalışır
}

if-else örneği:

int x = 5;

if (x > 3) {
    System.out.println("x 3'ten büyüktür");
} else {
    System.out.println("x 3'ten büyük değildir.");
}
Not: else bloğu zorunlu değildir; ancak çoğu durumda kod bütünlüğü ve okunabilirlik için faydalıdır.
Dikkat: Süslü parantez ({ }) kullanmamak bazen kodun “çalışmasına” rağmen beklenen sonucu vermemesine yol açabilir. Bu yüzden özellikle yeni başlayanlar için süslü parantez kullanmak iyi bir alışkanlıktır.

else-if ile birden çok koşul

Birden fazla koşulu kontrol etmek için else if zinciri kullanılır:

int price = 350;

if (price < 300) {
    urunSatinAl();
} else if (price < 400) {
    onayAl();
} else {
    urunuGeriBirak();
}
Önemli: Zincirde ilk doğru bulunan blok çalışır; arkadaki else if blokları artık değerlendirilmez.
int x = 1;

if (x == 3) {
    // ...
} else if (x < 4) {
    System.out.println("Sayı 4'ten küçüktür 😊");
} else if (x < 2) {
    System.out.println("Sayı 2'den küçüktür 😊");
} else {
    System.out.println("😊");
}

Burada x = 1 iken hem x < 4 hem de x < 2 doğru gibi görünür. Ancak ilk doğru koşul x < 4 olduğu için x < 2 bloğu çalışmaz.

if içinde metot kullanımı (boolean dönen)

if koşulunda metot çağırabilirsiniz; ama metodun sonucu true/false olmalıdır:

if (sinavGirdiMiDone()) { // true / false döner
    if (sinavSkoru < 70) {
        System.out.println("Try again.");
    } else {
        System.out.println("Sınavı geçtin!");
    }
}

switch-case yapısı

Birden çok “eşitlik kontrolü” gereken yerde switch-case, uzun else if zincirlerine göre daha okunabilir olabilir.

else-if ile örnek

int x = 3;

if (x == 1) {
    System.out.println("x = 1");
} else if (x == 2) {
    System.out.println("x = 2");
} else if (x == 3) {
    System.out.println("x = 3");
} else {
    System.out.println("x gerçekten kaç?");
}

switch-case ile aynı örnek

int x = 3;

switch (x) {
    case 1:
        System.out.println("x = 1");
        break;
    case 2:
        System.out.println("x = 2");
        break;
    case 3:
        System.out.println("x = 3");
        break;
    default:
        System.out.println("x hakkında bir fikrim yok dostum");
}
İpucu: switch yapısı genelde “aynı değişkenin farklı değerleri” kontrol ediliyorsa tercih edilir.

break ve default nasıl çalışır?

break, ilgili case çalıştıktan sonra switch bloğundan çıkılmasını sağlar. Eğer break yazmazsanız, Java sonraki case’lere “akmaya” devam eder (fall-through).

int x = 1;

switch (x) {
    case 1: System.out.println("x = 1");
    case 2: System.out.println("x = 2");
    case 3: System.out.println("x = 3");
}

Bu kodun çıktısı:

x = 1
x = 2
x = 3

Çünkü case 1 çalıştıktan sonra break olmadığı için case 2 ve case 3 de çalışır. Bu davranış bazı senaryolarda bilinçli kullanılabilir ama çoğu zaman bug üretir.

default ise hiçbir case eşleşmezse devreye girer:

char c = 'S';

switch (c) {
    case 'A':
        System.out.println("A seçildi");
        break;
    case 'S':
        System.out.println("S seçildi");
        break;
    default:
        System.out.println("Bilinmeyen seçim");
}
Dikkat: switch değişkeniniz char ise case değerleri de char olmalıdır. (Örn: case 'S': gibi)

En yaygın hatalar

  • else-if sırasını yanlış kurmak: Daha genel koşulu öne yazıp daha özel koşulu arkaya bırakmak.
  • Süslü parantezleri ihmal etmek: Özellikle iç içe if’lerde yanlış blok çalışabilir.
  • switch içinde break unutmak: İstenmeyen fall-through sonucu birden fazla case çalışır.
  • switch tür uyumsuzluğu: Değişken türüyle case değerleri uyuşmazsa mantık hatası olur.

Sık sorulan sorular (FAQ)

Java’da if mi switch mi daha iyi?

Değişkene göre değişir. Eşitlik karşılaştırmaları fazlaysa switch-case daha okunabilir olabilir. Aralık (örn: x > 10) veya karmaşık boolean ifadeleri varsa if-else daha uygundur.

switch’te break yazmak zorunlu mu?

Zorunlu değil; ancak çoğu kullanımda istenen davranış “tek case çalışsın” olduğu için break önerilir.

default kullanmak şart mı?

Şart değil ama iyi pratiktir. Beklenmeyen değerlerde programın nasıl davranacağını netleştirir.

Devamı: Java ve yazılım içerikleri için latestsoftwaredevelopers.com adresini ziyaret edebilirsiniz.

© Latest Software Developers — Java karar yapıları (if-else, switch-case)

Beğendiysen bir çay ısmarlayabilirsin ☕

Bana çay ısmarla

Database ile ilgili yorumlar

Yorum Paylaş

EMail Zorunlu alanlar * *