Karşılaştırma yapacağınız ifadenin alabileceği değerler fazla ise çok fazla if else if ifadesi yazmak yerine karşılaştırmamızı swtich…case yapısını kullanarak oluşturmamız hem kodumuzun okunurluluğunu arttırır hem de daha hızlı kod yazmamızı sağlar. Switch…case kullanımı ard arda yazılacak if..else bloklarını kullanmaktan daha kolaydır.
switch yapısında break, case, switch ve goto anahtar sözcükleri kullanılır.
Switch-case yapısını kullanırken dikkat edilmesi gerekenler:
-switch kelimesi, bu ifadenin başlangıcını yapar.
-switch anahtar kelimesini yazdıktan sonra parantez içine bir değişken adı yazılmalıdır.
-switch parantezleri içinde double, decimal tipinde değişken kullanılmaz.
-Değiskenin tipi string veya nümerik olabilir.
-case kısmında sabit değerler yer almalıdır.
-her bir case ifadesinden sonra break anahtar kelimesi unutulmamalıdır.
-case etiketinden sonra istenen sayıda deyim satırı bulunabilir.
-case’den sonra { } işaretlerine gerek yoktur.
-Her zaman default bölümünü kullanmanız program yazarken hataları kolayca bulabilmenizi sağlar.
-En çok rastlanan hata break; deyiminin unutulmasıdır. Bunu unutmamız gerekmektedir.
Yazım Kuralı
switch (degisken) { case deger1 : //ilgili işlemler break; case deger2 : //ilgili işlemler break; case deger3 : //ilgili işlemler break; default : //ilgili işlemler break; }
Örnek: Aşağıdaki örneğimiz için iki label bir maskTextBox birde button kullanınız. Aşağıdaki tasarımı sizde uygulayınız.
maskTexBox’ın özelliğinden sadece tek bir sayı girilmesini sağlayınız.
Butonun click eventine verilen sayıya göre haftanın kaçıncı gününe denk geldiğini bulabilirsiniz. Default kısmına ise hatalı bir sayı girişi olduğu zaman sadece uyarı mesajı verdirmeyi de unutmadık.
private void button1_Click(object sender, EventArgs e) { int sayi = Convert.ToInt32(maskedTextBox1.Text); switch (sayi) { case 1: label2.Text="Pazartesi"; break; case 2: label2.Text="Salı"; break; case 3: label2.Text="Çarşamba"; break; case 4: label2.Text="Perşembe"; break; case 5: label2.Text="Cuma"; break; case 6: label2.Text="Cumartesi"; break; case 7: label2.Text="Pazar"; break; default: label2.Text = "Hatalı giriş yaptınız."; break; } }
verilen maskTextBox kontrolümüze 1 den fazla sayı değeri girilmiyor aynı zamanda sadece sayı değerlerini girebiliyor.
2 yorum
Semih Erdem TAYYIPOĞLU · Nisan 22, 2018 12:41 pm tarihinde
Sayın Hocam Merhaba. bir Kaç sorum olacaktı. size ulaşabileceğim bir mail adresiniz varmı
Sümeyra Akbıyık · Nisan 30, 2018 7:01 am tarihinde
Merhaba,
sumeyraakbiyik06@gmail.com adresinden bana ulaşabilirsiniz