if-else yapısında olduğu gibi switch-case de bir karar, kontrol yapısıdır. switch-case ile yaptıklarımızı if-else kullanarak da yapabiliriz. Fakat bazı durumlarda switch-case kullanmamız çok daha pratik olacaktır.
switch-case yapısında tanımladığımız bir değişkenin değeri kontrol edilir.
switch (Degisken) { case kosul1: //kosul1 icin yapılacaklar break; case kosul2: //kosul2 icin yapılacaklar break; . . . . . case kosuln: //kosuln icin yapılacaklar break default: //varsayılan yapılacaklar listesi //hiçbir koşul gerçekleşmediğinde buradakiler yapılır break; }
switch-case’te kosul1, kosul2… vs. olarak belirttiğimiz yerlere if-else’te olduğu karşılaştırma operatörleri kullanılmaz. Sadece değişkenin değeri yazılır. Değişken hangi değeri aldığında ne iş yapılacağı belirlenir.
Mesela Ay isimli byte türünde bir değişkenimiz olsun eğer değişkenin değeri 1 ise mesaj kutusu ile Ocak, 2 ise Şubat, 3 ise Mart… bütün ayları bu şekilde switch-case yapısı içinde yazalım.
int Ay = 12; string AyAdi = ""; switch (Ay) { case 1: AyAdi="Ocak"; break; case 2: AyAdi="Şubat"; break; case 3: AyAdi="Mart"; break; case 4: AyAdi="Nisan"; break; case 5: AyAdi="Mayıs"; break; case 6: AyAdi="Haziran"; break; case 7: AyAdi="Temmuz"; break; case 8: AyAdi="Ağustos"; break; case 9: AyAdi="Eylül"; break; case 10: AyAdi="Ekim"; break; case 11: AyAdi="Kasım"; break; case 12: AyAdi="Aralık"; break; default: AyAdi = "TANIMSIZ"; break; } MessageBox.Show(AyAdi); }
Ay değişkeninin değerini 12 olarak belirlediğimiz için ekrana mesaj kutusu ile Aralık yazısı çıkacaktır.