Switch ifadeleri

using System; class SwitchSelect { public static void Main() { tring myInput; int myInt; begin: Console.Write("Please enter a number between 1 and 3: "); myInput = Console.ReadLine(); myInt = Int32.Parse(myInput); // switch with integer type switch (myInt) { case 1: Console.WriteLine("Your number is {0}.", myInt); break; case 2: Console.WriteLine("Your number is {0}.", myInt); break; case 3: Console.WriteLine("Your number is {0}.", myInt); break; default: Console.WriteLine("Your number {0} is not between 1 and 3.", myInt); break; } decide: Console.Write("Type \"continue\" to go on or \"quit\" to stop: "); myInput = Console.ReadLine(); // switch with string type switch (myInput) { case "continue": goto begin; case "quit": Console.WriteLine("Bye."); break; default: Console.WriteLine("Your input {0} is incorrect.", myInput); goto decide; } } } "switch" yapısı yine "switch" anahtar kelimesi ile başlar ve sınanacak değişkeni parantez içinde belirtiriz. Switch yapısının çalışması için şu veri tiplerinden bir tanesini kullanmak gerekir : sbyte,short,ushort,int, long, ulong, char, string, or enum ( enum daha sonraki bir derste işlenecektir.) Birinci örneğimizdeki "switch" yapısı int tipinde bir değer almaktadır. Tamsayı değişkenimizin alabileceği değerlere göre değişik işlemler yapabiliriz. "myInt" değişkenimizin herbir ihtimalini değerlendirirken "case" anahtar kelimesini, muhtemel değerini ve iki nokta üst üste ":" yapısında bir sınama yapıyoruz. Örneğimizde, "case 1 :", "case 2: ", ve "case 3:" şeklinde yazdık. Sınama sonuçlarından uygun olanın hemen altında kod bloku yer alır. Bu kod blokundan sonra ise "break" veya "goto" ifadelerini kullanmamız gerekir. İsterseniz "default" seçeneğini de "switch" ifadesi ile birlikte kullanabilirsiniz. "default" ifadesinin altındaki kod bloku, "defult"'tan önceki "case"'lerin hiçbiri sınamayı geçemediği zaman çalışır ve tüm "case"'lerden sonra gelir. Her "case" 'den sonra "break" ifadesinin zorunlu olduğunu tekrar hatırlatalım. "break" ifadesi "switch" yapısından dışarı çıkmayı ve alttaki kodlara geçmemizi sağlar. "default" anahtar kelimesinin kod blokundan hemen sonra "break" koymak programcının isteğine kalmıştır. Switch ifadesinde iki tane dikkat edilmesi gereken husus vardır. Birincisi, farklı durumları (case'leri) ard arda aralarına hiç kod yazmadan sıralamaktır. Aslında burada yapılan iş, değişkenimizin birden fazla değeri için tek bir "case" kod bloku oluşturmaktır. Bir case ve hemen arkasına başka bir case yazdığımızda program otomatik olarak bir sonraki "case" 'e geçer. Aşağıdaki kodu incelediğimizde, "myInt" değişkeni 1,2, veya 3 değerlerinden herhangi birini alırsa kendi değerini ekrana yazdırıyoruz. Diğer durumda ise değişkenimizin değerinin 1 ve 3 arasında olmadığını ekrana yazdırıyoruz. switch (myInt) { case 1: case 2: case 3: Console.WriteLine("Your number is {0}.", myInt); break; default: Console.WriteLine("Your number {0} is not between 1 and 3.", myInt); break; } "goto" ifadesinin nasıl kullanılacağını göstermek amacıyla yazılmıştır. "goto" , programın belirli bir kısmında yer alan, özel etiket (label) ile belirtilmiş kısmına atlamasına ve oradan itibaren çalışmaya devam etmesine yarar. Programımızda kullanıcı "continue" yazarsa "begin" olarak belirlenmiş etikete gider ve oradan çalışmaya devam eder. Aslında bu şekilde "goto" kullanmak etkili bir döngü olur. Eğer kullanıcı "end" yazarsa program "bye" yazar ve döngüden programımız çıkar. Açıkça görülüyor ki "goto" kelimesini kullanmak bize programda belirli şartlar altında güç kazandırır. Yine de "goto" ifadesini programda sık bir şekilde kullanmak "sipagetti" kod olarak adlandırılan programlamaya yol açabilir ki, bu tür kodlama programı hem okurken hem de hataları ayıklarken büyük sorunlara sebep olabilir.
© 2018, Csharp Kitabı. Tüm Hakları Saklıdır.