Anasayfa / C#.Net / C# Koşul İfadeleri- Switch Case Kullanımı
csharp

C# Koşul İfadeleri- Switch Case Kullanımı

Switch case yapısı, çok durumlu dallanma ifadelerinde if-else blokları yerine tercihen kullanılırlar. Switch-case ile yapılabilecek tüm işlemler if-else merdiveni ile de yapılabilmektedir. Fakat kod okunabilirliğini arttırdığı için birçok programcı switch-case  yapısını karmaşık if-else blokları yerine kullanmaktadır.

Switch-case ifadesinin genel yapısı aşağıdaki gibidir:

Switch (ifade) {

Case sabit1:

//kodlar

Break;

Case sabit2:

//kodlar

Break;

Default:

//kodlar

Break;

}

Switch-case yapısının çalışma mantığı şu şekildedir. Öncelikle switch parantezi içerisindeki ifadenin değeri hesaplanır. Hesaplanan değerle eşleşen case ifadesi bulunursa, o bloktaki kodlar çalıştırılır. Eğer hiçbir case bloğuyla eşleşme sağlanmazsa default bloğundaki kodlar çalıştırılır. Break deyimi her case bloğundan sonra mutlaka kullanılmalıdır. Çünkü istenen kod bloğu çalıştırılmış olmasına rağmen, break deyimi kullanılmazsa switch dışına çıkılmadan aşağıdaki case bloklarına doğru akış devam eder.

Switch-case yapısını örneklerle açıklamaya çalışalım.

Örnek1: Bilgisayarımızın tarih bilgisini alarak hangi günde olduğumuzu switch-case bloğu ile bulalım.

Örneğimiz şu şekilde çalışıyor. Öncelikle bugünün tarihi içerisinden haftanın kaçıncı gününde olduğumuzu öğrenip, gun değişkenine atadık. Bugün Cuma olduğu için gun değişkeninin değeri 5 oldu. Switch parantezi içerisinde ki gün değişkeniyle uyumlu olan case bloğundaki kodlar çalıştırıldı. Ekrana “Bugün Cuma” yazdırıldı. Sonra break deyimiyle switch yapısından çıkıldı.

Ekran Çıktısı:

switch case gün
Switch-Case Haftanın Günleri

Not: Eğer birbiri ardına gelen case ifadeleri arasında herhangi bir deyim yoksa bütün case ifadeleri için aynı deyim çalıştırılır. Bu durumla ilgili aşağıdaki örneği inceleyelim.

Örnek 2: Kullanıcıya kaçıncı ayda olduğunu sorarak, hangi mevsimde bulunduğunu gösteren program.

Ekran Çıktısı:

switch case mevsim
Switch-Case Mevsimler

Switch-Case Deyimiyle İlgili Önemli Kurallar

  • Case anahtar sözcüğünün sağındaki değer, mutlaka bir sabit olmak zorundadır.
  • Switch parantezi içerisindeki ifadenin türüyle, case sabitlerinin türünün birbiriyle uyuşması gerekir.
  • Default anahtar kelimesinin kullanımı zorunlu olmamakla birlikte, herhangi bir yere yazılabilir.
  • Bir switch bloğunda birbiriyle aynı sabit değerde, iki case ifadesi bulunamaz.
  • Case bloklarının alt alta yazılış sıraları önemli değildir.
  • Herhangi bir case ifadesinden, programın akışını başka bir case ifadesine taşımak istersek goto anahtar kelimesini kullanabiliriz.
  • Case ifadesinin sağındaki değer tamsayı, karakter ya da karakter katarı olabilir.

Bu yazımda C# koşul ifadelerinden switch-case yapısını anlattım. Konuyla ilgili sorularınızı bana iletebilirsiniz. Kolay gelsin…

İlginizi Çekebilir!

c# müzik çalar yapımı

C# ile Müzik Çalar Yapımı

Bu dersimde Windows’un kendi müzik çaları olan Windows Media Player’ ı C# içerisin de kullanarak …


5 Yorumlar

  1. Merhabalar;

    case 1:
    case 2:
    case 3: yazmak yerine case 1-3: gibi bir kod yazılabilir mi?

    • 4. Tekil Kişi

      Böyle yapabilirsin
      case “METİN” || “METİN” || “METİN”:
      Bu yol daha kolay

      • || veya anlamına gelmiyor muydu neden aynı seçeneklere yazıyoruz ki kafam karıştı

        • Kafanın karışması saçma.
          Mesela programda seçim yapmak için “a” tuşuna bastırıyoruz
          ama kullanıcı gidib büyük “A” yazdı, işte bu gibi durumlarda

          — secim == ‘a’ || secim == ‘A’ — tarzında kullanıyoruz.

  2. int gun = (int)DateTime.Now.DayOfWeek;
    switch (gun)
    {
    case 1:
    Console.Write(“Bugün Pazartesi”);
    break;
    case 2:
    Console.Write(“Bugün Salı”);
    break;
    case 3:
    Console.Write(“Bugün Çarşamba”);
    break;
    case 4:
    Console.Write(“Bugün Perşembe”);
    break;
    case 5:
    Console.Write(“Bugün Cuma”);
    break;
    case 6:
    Console.Write(“Bugün Cumartesi”);
    break;
    case 7:
    Console.Write(“Bugün Pazar”);
    break;
    }

    ———–
    case 7:
    Console.Write(“Bugün Pazar”);
    break;
    —*——
    DEĞİŞTİR
    —*——
    case 0:
    Console.Write(“Bugün Pazar”);
    break;
    ————

    yapın yoksa öteki türlü çalışmaz!

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Time limit is exhausted. Please reload the CAPTCHA.