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.
Örnek1: Bilgisayarımızın tarih bilgisini alarak hangi günde olduğumuzu switch-case bloğu ile bulalım.
int gun = (int)DateTime.Now.DayOfWeek; switch (gun) { case 0: Console.Write("Bugün Pazar"); break; 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; }
Ö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ı:
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.
Console.Write("Kaçıncı ayda olduğunuzu girin:"); int ay = Convert.ToInt32(Console.ReadLine()); switch (ay) { case 12: case 1: case 2: Console.Write("Kış mevsimi"); break; case 3: case 4: case 5: Console.Write("İlkbahar mevsimi"); break; case 6: case 7: case 8: Console.Write("Yaz mevsimi"); break; case 9: case 10: case 11: Console.Write("Sonbahar mevsimi"); break; default: Console.Write("Ay bilgisini yanlış girdiniz."); break; }
Ekran Çıktısı:
microsoft ace oledb 12.0 hatası,oledb 12.0 provider not registered,microsoft access database engine indir,accessdatabaseengine.exe indir,oledb provider…
Microsoft, uzaktan farklı cihazları kontrol etmeye yarayan Uzak Masaüstü uygulamasına desteği keseceğini duyurdu. Onun yerine…
office 2021 etkinleştirme, office 2021 lisans anahtarı, office 2021 ürün anahtarı, office 2021 aktivasyon, office…
Microsoft Office 2016, güçlü özellikleri ve kullanıcı dostu arayüzü ile hala popülerliğini koruyan bir ofis…
Office 2019 etkinleştirme, Office 2019 ürün anahtarı, Office 2019 lisans, Office 2019 serial key, Office…
2025 e-imza, e-imza nedir, e-imza nasıl alınır, e-imza başvurusu, e-imza ücreti 2025, e-imza fiyatları, e-imza…