Bazen tek bir değere bakıp birçok ihtimalden birini seçmen gerekir. Örneğin haftanın gün numarasına göre gün adını göstermek isteyebilirsin.
Böyle durumlarda switch yapısı kullanılır. Tek bir değeri alır ve uygun eşleşmeye göre ilgili kodu çalıştırır.
int gun = 2;
switch (gun)
{
case 1:
Console.WriteLine("Pazartesi");
break;
case 2:
Console.WriteLine("Salı");
break;
}
Aynı değişken için çok sayıda if / else if yazmak kodu uzatabilir. Özellikle eşitlik bazlı kontrollerde switch daha temiz görünür.
Yani bir değerin hangi seçeneğe denk geldiğini kontrol ediyorsan switch okunabilirliği artırabilir.
Her case, olası bir eşleşmeyi temsil eder. Değer o case ile aynıysa ilgili blok çalışır.
Çoğu klasik kullanımda case sonunda break yazılır. Bu, switch yapısından çıkılmasını sağlar.
string mevsim = "Yaz";
switch (mevsim)
{
case "Kış":
Console.WriteLine("Mont giy.");
break;
case "Yaz":
Console.WriteLine("Tişört giy.");
break;
}
Bazen hiçbir case eşleşmez. Böyle durumlar için default bloğu vardır.
Default, 'bunların hiçbiri değilse bunu yap' demektir. Güvenlik ağı gibi düşünebilirsin.
int ay = 15;
switch (ay)
{
case 1:
Console.WriteLine("Ocak");
break;
case 2:
Console.WriteLine("Şubat");
break;
default:
Console.WriteLine("Geçersiz ay");
break;
}
Switch çok temiz bir yapı sunar ama her yerde kullanılmaz. Doğru yerde kullanıldığında kodu sadeleştirir.