Blok kontrol kodları-2/switch-case)
İlk makalemizde basamaklanmış if iafedelerini göstermiştik.Bu basamaklı ifadeleri daha etkin ve kolay okunabilir bir hale getirmek için switch-case bloklarını kullanırız.
Bir switch bloğunda switch,case,default,break gibi altın kelimeler vardır.
Daha önceki kontrol bloglarıyla olan ilk makalemde (bu onun devamı niteliğinde) verdiğim örneği bu sefer switch bloklarıyla vereceğim.
Switch(no)
{
Case 0 :
noisim=”Microsoft”;
break;
Case 1 :
noisim=”sql”;
break;
Case 2 :
noisim=”visual studio”;
break;
Case 3 :
noisim=”forefront”;
break;
Case 3 :
noisim=”server2008”;
break;
default :
noisim=”değer yok”;
break;
}
Evet arkadaşlar şimdi kodumuzu if-else e göre neler değişti onagöre açıklayalım.Eğer ilk makalemi okuduysanız orda verdiğim örnekle benzer yapıdalar.İşin aslı aynı görevide görürler.
Ancak biz switch bloklarında değişikli yapabiliriz.Daha doğrusu bunlar if den ayrılmalarına neden olan farklılıklardır.if-else bloklarında uygun değer sağlanınca blok kesilir.Ancak swtich te böle bir zorunluluğumuz yok ,yane biz orda break komutunu kullanmazsak blok kodu sonuna kadar devam edecektir.
Switck-case bloklarının if bloklarından ayrılmasını sağlayan diğer çok önemli fark ise;aralık değeri girmememizdir.
Şimdi 3 maddeyle switch-case deyimlerinin kurallarını yazmak istiyorum
1)switch ifadesinde int veya string gibi temel veriler kullanırız.
2)case etiketlerimizde sabit deyimler çeviririz.
3)case etiketlerimiz benzersiz olmalıdır.
Yukarıdaki cümlede belirttiğim gibi” if-else bloklarında uygun değer sağlanınca blok kesilir.Ancak swtich te böle bir zorunluluğumuz yok ,yane biz orda break komutunu kullanmazsak blok kodu sonuna kadar devam edecektir.” gibi bir cümle kullandım.
C# ın yaratıcıları break komutunu kullanmanın iyi bir şey olduğunu ve koddan çıkartmanın nadirde olsa hatalara yol açabileceğini söylüyor.Gerçektende öle özellikle büyük c projelerinde maliyetli hatalara sebep olabiliyor.Hatta No fall-through yane geçiş yok kuralı ilede bunu belirtiyorlar.
Ama siz yinede sağladığınız bloktan sonraki bloğa illa geçmek istiyorsanız c# ta goto deyimini kullanabilirsiniz.Ancak bizde,c# ın yaratıcılarıda bunu pek fazla önermiyoruz.
Örnek :
Şemalarımız ve kod bloklarımızı önce ekran görüntüsüyle belirtelim…


Sizlere zaman kaybı olmaması açısından kodları aşğıda veriyorum…
string product;
product = textBox1.Text;
switch (product)
{
case "visual studio":
label1.Text = "kuruldu";
break;
case "server 2008":
label1.Text = "kurulu değil";
break;
case "sql server":
label1.Text = "kurulu";
break;
case "silverlight":
label1.Text="kurulu değil";
break;
default:
label1.Text="geçersiz ifade";
break;
}
Hepinize Kolay Gelsin İyi Çalışmalar…..