Abdurrahman Işık some development practices

Switch-Case Mekanizması

Switch-case mekanizması yapı olarak if-else koşul ifadelerinin aynısıdır, buradaki tek fark şudur; if döngüsünde kod bloğu çalıştığında program her if bloğuna uğrayacaktır, Switch-Case mekanizmasında ise koşul parantezindeki şarta bağlı olarak ilgili case: bloğuna girip işlemi bitirecektir.

Switch-Case mekanizmasının ELSE bloğu default bloğudur. Ayrıca her case:’den sonra mutlaka break olmalıdır.

switch(koşul)
{
  case:
    break;

  default:
    break;
}

Az önce switch mekanizmasının çalışma mantığını öğrendik. Basit bir hesap makinası ile bunu daha iyi anlayalım;

Örnek 1 :

Console.Write("1.sayıyı giriniz : ");
int sayi1 = int.Parse(Console.ReadLine());
Console.Write("2.sayıyı giriniz : ");
int sayi2 = int.Parse(Console.ReadLine());
Console.Write("Lütfen işlem seçiniz(+,-,/,* ) :"); // Toplama, Çıkarma, Bölme ve Çarpmayı seçenekte sembol olarak gösterdik.
char secim = char.Parse(Console.ReadLine()); // Tabi bu semboller karakter sınıfında olduğu için char değişkenin üzerine aldık.

switch (secim)
        Console.WriteLine("{0} + {1} = {2}", sayi1, sayi2, sayi1 + sayi2);
    break;
    case '-':
        Console.WriteLine("{0} - {1} = {2}", sayi1, sayi2, sayi1 - sayi2);
    break;
    case '\*':
        Console.WriteLine("{0} * {1} = {2}", sayi1, sayi2, sayi1 * sayi2);
    break;
    case '/':
        switch (sayi2)
        {
            case 0:
                Console.WriteLine("0 bölen olamaz");
            break;
            default:
                Console.WriteLine("{0} / {1} = {2}", sayi1, sayi2, sayi1 / sayi2);
            break;
        }
    break;
    default:
        Console.WriteLine("Hatalı seçim yaptınız.
Bi kaç dakikalığına yazılımcı gömleğinizi çıkarın, cafede çalışan ve sipariş alan bir eleman olarak görün kendinizi;..!");
    break;
}

Örnek 2 :

Console.WriteLine("[1]-Çay");
Console.WriteLine("[2]-Kahve");
Console.WriteLine("[3]-Porakal Suyu");
Console.Write("Lütfen seçiminizi yapınız..:");

char secim = char.Parse(Console.ReadLine());
switch (secim)
{
  case '1':
    Console.WriteLine("Çayınız hazırlanıyor, 2 TL alayım.");
    break;
  case '2':
    Console.WriteLine("Kahveniz Brezilyadan geliyor, bu arada ben 4 TL alayım.");
    break;
  case '3':
    Console.WriteLine("Portakallarınız sıkılıyor 7 TL alayım.");
    break;
  default:
    Console.WriteLine("Makina soğuk...!");
    break;
}

Yukarıda ki örnekte kullanıcı konsolda 1,2 ve 3’ü seçtiğinde switch seçimden gelen nesneye göre case deki seçenekler listelenecek, kullanıcı alakası olmayan bir istekte bulunduğunda “Makina Soğuk” yazısıyla karşılacak 😀

Anlaşıldığı gibi switch-case’in çok basit yapısı var. Daha iyi bir makalede buluşmak üzere 😉