3 Nisan 2012 Salı

C# 'da Karar Yapıları - SWITCH CASE

Switch case yapılarıyla yapabildiğimiz her şeyi if else yapılarıyla yapabiliriz arkadaşlar. Fakat if else karar yapılarıyla yapabileceğimiz herşeyi switch case kullanarak yapamayız. Çünkü aralarındaki en büyük fark if else karar yapılarında birden fazla durumu aynı anda kontrol edebiliyorduk. Swich case yapısında her bir durum için ayrı ayrı case tanımlanır.

            Console.WriteLine("Bugün günlerden ne? :");
            string haftaninGunu = Console.ReadLine();
            switch (haftaninGunu)
            {
                case "pazartesi":
                    Console.WriteLine("monday");
                    break;
                case "salı":
                    Console.WriteLine("tuesday");
                    break;
                case "çarşamba":
                    Console.WriteLine("wednesday");
                    break;
                case "perşembe":
                    Console.WriteLine("thursday");
                    break;
                case "cuma":
                    Console.WriteLine("friday");
                    break;
                case "cumartesi":
                    Console.WriteLine("saturday");
                    break;
                case "pazar":
                    Console.WriteLine("sunday");
                    break;
                default:
                    Console.WriteLine("Böyle bir gün yok");
                    break;
            }
            Console.ReadKey();

Case 'deki değer değişken olamaz, olursa hata fırlatır. Sabit değer olmalıdır. Switch case 'in de kullanım amacı olması muhtemel sabit koşullar varsa bu koşullardan birinin gerçekleşmesi halinde nokta atışı yaparak o koşula gitmektir. 

If else karar yapısında, sırayla doğru if bloğunu bulana kadar olan if bloklarını gezmemiz gerekiyordu. Fakat swich case karar yapısında sadece o case çalışacak, breakpoint diğer case 'leri hiç dolaşmayacaktır. 

Bu nedenle sabit durumlar için switch case karar yapısı kullanmak daha performasnslıdır.

Break gördüğünde bulunduğu skoptan çıkar. Break kelime anlamı olarak kaçış demektir.

Varsayılan durumlar için default bloğu vardır. Bu blokta diğer durumlar konrol edilir.

Hatalı Kullanım :

            string i = "pazartesi";
            switch ( haftaninGunu )
            {
                case i:
                    Console.WriteLine("Monday");
                    break;
                default:
                    Console.WriteLine("Diğer");
                    break;
            }

Case 'deki değer değişken olamaz demiştim. Görüldüğü üzere değişken olursa hata verecektir.

A constant value is expected

Hiç yorum yok:

Yorum Gönder