📘 DERS NOTU: SWITCH–CASE YAPISI
🎯 1. Switch–Case Nedir?
switch–case, bir değişkenin alabileceği farklı değerlere göre farklı işlemler yapılmasını sağlar.
Birden fazla durumu kontrol ederken if–else’den daha düzenli ve okunaklıdır.
Aynı değişkeni tekrar tekrar karşılaştırman gerekmez.
Case blokları ile seçenekleri ayırır.
Genelde sabit değerlerle çalışır (int, char, string vb.).
break ile case sonlandırılır.
🧩 2. Switch–Case Genel Yapısı
switch(deger)
{
case durum1:
// Yapılacak işlemler
break;
case durum2:
// Yapılacak işlemler
break;
default:
// Hiçbir case eşleşmezse
break;
}
Bileşenler:
switch(deger) → Kontrol edilecek değişken.
case durum: → Bu değere denk gelirse çalışır.
break; → Case bloğundan çıkar.
default: → Hiçbir case uymadığında çalışan blok. (opsiyonel ama çoğu zaman kullanılır)
📝 3. Temel Örnek – Gün Numarasından Gün İsmi
Bulma
Problem:
Kullanıcı 1–7 arasında bir sayı girsin.
1 → Pazartesi
2 → Salı
…
7 → Pazar
C# Kod:
int gun = 3;
switch(gun)
{
case 1:
[Link]("Pazartesi");
break;
case 2:
[Link]("Salı");
break;
case 3:
[Link]("Çarşamba");
break;
case 4:
[Link]("Perşembe");
break;
case 5:
[Link]("Cuma");
break;
case 6:
[Link]("Cumartesi");
break;
case 7:
[Link]("Pazar");
break;
default:
[Link]("Geçersiz gün numarası!");
break;
}
Çıktı:
Çarşamba
🔍 4. If–Else ile Switch–Case Farkı
If–Else Switch–Case
Çok sayıda karşılaştırmada kod uzar Daha düzenli görünür
Mantıksal ifadeler kullanılabilir (>, <, &&, `
Daha esnek Daha hızlı ve okunaklı
Tek bir değişkene bağlı olmak zorunda değil Tek bir değişken üzerinde çalışır
🎮 5. Orta Seviye Örnek – Basit Hesap Makinesi
Problem:
Kullanıcı işlem türü girsin:
+, -, *, /
Kod:
char islem = '*';
int sayi1 = 6;
int sayi2 = 4;
switch(islem)
{
case '+':
[Link]("Toplam: " + (sayi1 + sayi2));
break;
case '-':
[Link]("Fark: " + (sayi1 - sayi2));
break;
case '*':
[Link]("Çarpım: " + (sayi1 * sayi2));
break;
case '/':
[Link]("Bölüm: " + (sayi1 / sayi2));
break;
default:
[Link]("Hatalı işlem!");
break;
}
🌈 6. String ile Switch–Case Kullanımı
C#’ta switch-case string ile de çalışabilir.
Örnek:
string renk = "kirmizi";
switch(renk)
{
case "kirmizi":
[Link]("Dur!");
break;
case "sari":
[Link]("Hazır ol!");
break;
case "yesil":
[Link]("Geç!");
break;
default:
[Link]("Bilinmeyen renk!");
break;
}
🔄 7. Birden Fazla Case Aynı İşlemi Yapabilir
int ay = 12;
switch(ay)
{
case 12:
case 1:
case 2:
[Link]("Kış Mevsimi");
break;
case 3:
case 4:
case 5:
[Link]("İlkbahar");
break;
case 6:
case 7:
case 8:
[Link]("Yaz");
break;
case 9:
case 10:
case 11:
[Link]("Sonbahar");
break;
default:
[Link]("Geçersiz ay!");
break;
}
🧩 8. Örnek Soru – Öğrenciler için Mini Uygulama
❓ Soru:
Kullanıcıdan haftanın gününü isim olarak alan ve hafta içi mi hafta sonu mu olduğunu yazan bir switch-case
yapısı kodlayın.
Çözüm:
string gun = "Cumartesi";
switch([Link]())
{
case "pazartesi":
case "salı":
case "çarşamba":
case "perşembe":
case "cuma":
[Link]("Hafta içi");
break;
case "cumartesi":
case "pazar":
[Link]("Hafta sonu");
break;
default:
[Link]("Geçersiz gün!");
break;
}
🎓 9. Ders Sonu Mini Özet
📌 switch–case tek bir değişkenin değerine göre karar verir.
📌 case blokları her durumu temsil eder.
📌 break, kodun diğer caselere sıçramasını engeller.
📌 default, hiçbir eşleşme olmadığında devreye girer.
📌 Çoklu seçenekler için if–else yerine switch-case daha düzenlidir.