
6. Koşullu İfadeler (if-else, switch-case)
Java’da, programların akışını kontrol etmek ve belirli koşullara göre farklı kod bloklarını çalıştırmak için koşullu ifadeler kullanılır. Bu ifadeler, programların karar verme yeteneğini geliştirerek daha karmaşık ve dinamik uygulamalar oluşturulmasına olanak tanır. Bu makalede, Java’daki temel koşullu ifadeleri (if-else ve switch-case) ayrıntılı olarak inceleyeceğiz.
if-else İfadeleri
if-else ifadeleri, belirli bir koşulun doğru (true) veya yanlış (false) olmasına göre farklı kod bloklarını çalıştırmak için kullanılır. Temel sözdizimi aşağıdaki gibidir:
if (koşul) {
// Koşul doğruysa çalışacak kod
} else {
// Koşul yanlışsa çalışacak kod
}
Burada, koşul bir boolean ifade olmalıdır. Eğer koşul doğruysa, if bloğundaki kod çalıştırılır; aksi takdirde, else bloğundaki kod çalıştırılır. else bloğu isteğe bağlıdır.
Basit if Örneği
int x = 10;
if (x > 5) {
System.out.println("x 5'ten büyüktür");
}
Bu örnekte, x değişkeninin değeri 5’ten büyük olduğu için, ekrana “x 5’ten büyüktür” yazdırılır.
if-else Örneği
int x = 3;
if (x > 5) {
System.out.println("x 5'ten büyüktür");
} else {
System.out.println("x 5'ten küçük veya eşittir");
}
Bu örnekte, x değişkeninin değeri 5’ten küçük olduğu için, ekrana “x 5’ten küçük veya eşittir” yazdırılır.
if-else if-else Zinciri
Birden fazla koşulu kontrol etmek için if-else if-else zinciri kullanılabilir. Bu yapı, koşullar sırayla kontrol edilir ve ilk doğru olan koşulun bloğu çalıştırılır. Hiçbir koşul doğru değilse, else bloğu (varsa) çalıştırılır.
int x = 75;
if (x >= 90) {
System.out.println("Not: A");
} else if (x >= 80) {
System.out.println("Not: B");
} else if (x >= 70) {
System.out.println("Not: C");
} else if (x >= 60) {
System.out.println("Not: D");
} else {
System.out.println("Not: F");
}
Bu örnekte, x değişkeninin değeri 75 olduğu için, ekrana “Not: C” yazdırılır.
switch-case İfadeleri
switch-case ifadeleri, bir değişkenin değerine göre farklı kod bloklarını çalıştırmak için kullanılır. Özellikle, bir değişkenin birden çok olası değerine göre farklı işlemler yapmak gerektiğinde kullanışlıdır.
switch (değişken) {
case değer1:
// değişken değeri değer1'e eşitse çalışacak kod
break;
case değer2:
// değişken değeri değer2'ye eşitse çalışacak kod
break;
...
default:
// değişken hiçbir değere eşit değilse çalışacak kod
}
Burada, değişken bir byte, short, int, char, enum veya String türünde olabilir. Her case etiketi, değişken‘in olası bir değerini temsil eder. Eğer değişken‘in değeri bir case etiketindeki değerle eşleşirse, o case bloğundaki kod çalıştırılır. break ifadesi, o case bloğunun sonunu işaret eder ve switch ifadesinden çıkılmasını sağlar. Eğer break ifadesi kullanılmazsa, bir sonraki case bloğu da çalıştırılır (fall-through). default etiketi, değişken‘in hiçbir case etiketindeki değerle eşleşmediği durumlarda çalışacak kodu belirtir. default etiketi isteğe bağlıdır.
switch-case Örneği
int day = 3;
String dayName;
switch (day) {
case 1:
dayName = "Pazartesi";
break;
case 2:
dayName = "Salı";
break;
case 3:
dayName = "Çarşamba";
break;
case 4:
dayName = "Perşembe";
break;
case 5:
dayName = "Cuma";
break;
case 6:
dayName = "Cumartesi";
break;
case 7:
dayName = "Pazar";
break;
default:
dayName = "Geçersiz gün";
}
System.out.println("Gün: " + dayName);
Bu örnekte, day değişkeninin değeri 3 olduğu için, ekrana “Gün: Çarşamba” yazdırılır.
Fall-Through Durumu
switch-case ifadelerinde break ifadesinin kullanılmaması durumunda, bir sonraki case bloğu da çalıştırılır. Bu duruma fall-through denir. Bazen bu özellik, birden fazla değer için aynı kodu çalıştırmak istediğimizde faydalı olabilir.
int month = 2;
int daysInMonth;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
daysInMonth = 31;
break;
case 4:
case 6:
case 9:
case 11:
daysInMonth = 30;
break;
case 2:
daysInMonth = 28; // Artık yıl kontrolü yapılmadı
break;
default:
daysInMonth = 0;
}
System.out.println("Ayın gün sayısı: " + daysInMonth);
Bu örnekte, birden fazla ay için aynı sayıda gün sayısı olduğundan, break ifadeleri atlanarak fall-through özelliği kullanılmıştır.
Koşullu İfadelerde Dikkat Edilmesi Gerekenler
ififadesinin koşulu her zaman bir boolean ifade olmalıdır.switch-caseifadesinde,breakifadesinin unutulması fall-through durumuna yol açabilir.switch-caseifadesinde,defaultetiketi isteğe bağlıdır, ancak kullanılmadığında beklenmedik sonuçlar ortaya çıkabilir.- Karmaşık koşullu ifadeler yerine, kodu daha okunabilir hale getirmek için fonksiyonlar kullanılabilir.
Sonuç
Java’daki koşullu ifadeler (if-else ve switch-case), programların karar verme yeteneğini geliştirerek daha karmaşık ve dinamik uygulamalar oluşturulmasına olanak tanır. Bu ifadelerin doğru kullanımı, programların daha esnek ve kullanıcı dostu olmasını sağlar. Bu makalede, koşullu ifadelerin temel kavramları, sözdizimi ve örnek kullanımları ayrıntılı olarak açıklanmıştır. Pratik yaparak ve farklı senaryoları deneyerek, bu ifadeleri daha iyi anlayabilir ve programlama becerilerinizi geliştirebilirsiniz.




Bir yanıt bırakın