Herkese merhabaa 😊 Bu yazıda da C# dilinde yer alan hali ile switch case ifadesini inceleyeceğiz. switch case ifadesi çoklu durum yapılarında if else blokları gibi davranırlar. Birçok durumda da karmaşık if else yapıları yerine switch – case kullanımı tercih edilmektedir. O halde switch – case ifadesine biraz daha yakından bakalım. 💻

Switch İfadesi

Switch ifadesi bir değişkeni değerlerin bir liste ile eşitliğini test etmek için kullanılan bir ifadedir. Daha net açıklamak gerekirse; bir değişkeni elimizde var olan bir değerler listesi ile karşılaştırmak istediğimizde kullanıyoruz. Elimizde bulunan değerleri case olarak tanımlıyoruz. Her değer için değişten düzenli olarak deneniyor. Önce kullanımını göstereyim sonra örneğe geçeriz.

switch(değişken)
{
     case deger1:
                degisken deger1'e eşit olduğunda çalışacak kısım
     break;
     case deger2:
                degisken deger2'e eşit olduğunda çalışacak kısım
     break;
     default:
            degisken tanımlı değerlere eşit değilse çalışacak kısım
     break;
}   

Şimdi örneğe geçebiliriz. 3’e kadar girilen değerleri ekrana yazı ile yazan bir program yapalım.

int num = 0;
Console.WriteLine("Üçe kadar bir değer giriniz: ");
num = Convert.ToInt32(Console.ReadLine());
switch (num)
{
   case 1:
       Console.WriteLine("Girdiğiniz değer bir.");
       break;
   case 2:
       Console.WriteLine("Girdiğiniz değer iki.");
       break;
   case 3:
       Console.WriteLine("Girdiğiniz değer üç.");
       break;
}
Console.ReadKey();

Switch Case Örnek

Her case kontrol edilmesi gereken bir durumu temsil ediyor. Girdiğimiz değerin öncelikle bire eşit olup olmadığına bakılıyor. Sonra ikiye ve üçe bakılıyor. Eğer bu değerlerden birisi girildiyse altında yazan kod bloğu çalışıyor. 1,2 ve 3 değerlerinden farklı bir değer girildiğinde default case çalışır.

Switch içerisine istediğiniz kadar case yazabilirsiniz. Ancak aynı etiketi iki case’de kontrol edemezsiniz.

default Case:

Yukarıda da kısaca belirttiğim gibi, switch ifadesinde girdiğiniz değer caselerden hiç biri ile çalışmazsa otomatik olarak çalışan kısımdır. Örnek üzerinde gördüğünüzde daha iyi anlayacağınızı düşünüyorum.

int age = 89;
switch (age)
{
   case 19:
           Console.WriteLine("Genç");
           break;
   case 42:
           Console.WriteLine("Yetişkin");
           break;
   case 70:
           Console.WriteLine("Yaşlı");
           break;
   default:
           Console.WriteLine("Default");
           break;
}
Console.ReadKey();

Switch Case Örnek

break İfadesi:

Switch ifadesi içerisinde break kelimesinin anlamı case gerçekleştiğinde ifadeyi sonlandırmaktır. break ifadesi olmadığında kontrol edilen ifade, case koşulu ile eşleşse bile bir sonraki case ifadesine iner. Birden fazla kontrol yapmak istiyorsanız break ifadesini kullanmayabilirsiniz. Örneğin;

int number = 1;
switch (number)
{
    case 1:
    case 3:
    case 4:
           Console.WriteLine("Girilen sayı ilk dört sayıdan biri");
           break;
    case 2:
           Console.WriteLine("Girilen sayı ikidir");
           break;
    case 5:
    case 6:
           Console.WriteLine("Girilen sayı ilk dört sayıdan biri değildir");
           break;
    default:
           Console.WriteLine("Girilen sayı farklı bir sayıdır");
           break;
} 

Switch Case Örnek1
Bu şekildeki yaklaşıma falltrough denir. Daha güvenli ve okunaklı bir kod yazımı için tüm case ve defaultların break içermesi gerekiyor.

Blogda yazdığım bütün örnekleri Github reposunda bulabilirsiniz. 😊

Ders yazımız şimdilik bu kadar! Bir sonraki yazıya kadar kendinize iyi bakın. 😊