msHOWTO

3 Nisan 2012 Salı

C# Karar Yapıları 2 - Switch Case

Merhaba arkadaşlar . If else yapısını anladığınızı kabul ediyor ve bu duruma göre anlatımımı yapacağım. If else yapısında birden çok durum söz konusu olduğunda bu durumların kontrolünü yapıp çıkan duruma göre gerekli işlemleri yapabiliyorduk.Fakat Switch case yapısında bu mümkün değildir.E böyle bir durum varken neden Switch case kullanayım diyorsunuzdur. Her zamanki gibi ilk akla gelen ve kesinlikle doğru olan cevap performansdır.Bunun sebebini ileride anlatacağım...

Şimdi gelin Switch Case yapısını inceleyelim.


   switch (durum)
            {
                case deger:
                    break;
                case deger2:
                    break;
                default:
                    break;
            }


Bu yapıda dikkat edilmesi gereken kurallar şunlardır;

1- Her Case durumunda mutlaka break ifadesi olmak zorundadır.
2- Default durumu olmak zorundadır.
3- Case den sonra gelen deger 'ler değişken olamaz.Yalnızca const olarak yani sabit olarak tanımlanan değişkenler konulabilinir.Bunun sebebini neden daha hızlı olduğunu anlattığım zaman anlayacaksınız.
4- Birden fazla durum kontrol edilemez.

Evet gelelim bu Switch denen yapı neden daha hızlı? Sebebi program derlenmeden önce switch yapısınde belirlenen değerler assembly olarak kayıt altına alınır.Böylelikle direk nokta atışı yapılmaktadır.Peki neden sadece const tipinde değişkenler deger kısmında kullanılır? Çünkü değişkenin programın akışına göre ne değer alacağı belli değildir.Bu yüzden IDE bu sorumluluğun altına girmez ve kodları derlemez.Ayrıca en basit anlamda programın akışı switch ifadesine geldiğinde durum un değeri ne ise case de belirlenen değer bloğuna direk atlar ve diğer değerler kontrol edilmez.

Faydalı olduysam ne mutlu bana ... Görüşmek üzere 


Hiç yorum yok:

Yorum Gönder