C# - Switch Case İfadesi
Switch ifadesi, if else koşuluna benzemektedir. Her olasılık için bir eylem içeren liste bizlere vermektedir. Hiçbir koşul doğru değilse default (varsayılan) bir işlem gerçekleşmektedir.
Basit bir switch ifadesini aşağıda görebilirsiniz..
int sayi = 2;
switch(sayi)
{
case 0:
Console.WriteLine("Sayı değeri 0");
break;
case 1:
Console.WriteLine("Sayı değeri 1");
break;
case 2:
Console.WriteLine("Sayı değeri 2");
break;
}
Kontrol edilecek tanımlayıcı (identifier), switch anahtar sözcüğünden sonra konur ve ardından ifadelerinin listesi vardır. Burada tanımlayıcıyı verilen bir değere göre kontrol ederiz. Her case (durumun) sonunda bir "break" bildirimi olduğunu fark edeceksiniz. C#'da kod bloğunu tamamen okumadan koddan çıkmanızı sağlar.
Switch ifadesinde aynı koşulları sağlayan birden fazla durumda bunları peşpeş yazıp tek bir kod bloğuna yönlendirebiliriz. Aşağıdaki örnekte bunu görelim..
Console.WriteLine("Hangi hayvani seviyorsun ? (kedi/kopek/davsan/puma)");
string input = Console.ReadLine();
switch(input)
{
case "kedi":
case "kopek":
case "davsan":
Console.WriteLine("Evcil Hayvan Seviyormussun");
break;
case "puma":
Console.WriteLine("Vahsi Hayvan Seviyormussun");
break;
}
Bu örnekte, kullanıcıya bir soru soruyoruz ve bir hayvan girmesini öneriyoruz. Kullanıcı bizim önerdiğimiz bir hayvanı girdiğinde bunu ".ToLower()" ile küçük harfe dönüştürüyoruz. Böylece kullanıcıdan gelecek input'un (ekrana girilecek değer) büyük/küçük harf sorununu ortadan kaldırıyoruz.
Fakat yukarıdaki örnekte bir sorun var. Kullanıcı değeri yanlış yazabilir veya bizim önerdiğimizden başka bir değer girebilir. Bu durumlar için "defaut:" değerini yaratmalıyız.
Console.WriteLine("Hangi hayvani seviyorsun ? (kedi/kopek/davsan/puma)");
string input = Console.ReadLine();
switch(input)
{
case "kedi":
case "kopek":
case "davsan":
Console.WriteLine("Evcil Hayvan Seviyormussun");
break;
case "puma":
Console.WriteLine("Vahsi Hayvan Seviyormussun");
break;
default:
Console.WriteLine("Sevdigin Hayvan Dusundugumuzden Farkliymis");
break;
}