Switch-Case c-sharp da kullanılan kontrol yapılarından biridir. Birden fazla durumu kontrol etmek için kullanılır. Switch-case yapısı belirlediğimiz koşulların gerçekleşmesi halinde o koşula ait olan kod blogunu çalıştırır. Her koşul için ayrı bir case oluşturmamız gerekir.Switch-case kullanımı “else if” kullanımına benzer ve else if yapısına alternatif olarak kullanılabilir.Else if ve switch-case yapıları arasında bazı farklar vardır.

 

  • Switch-case yapısında değişken tanımını bir kez yaptıktan sonra koşulları ard arda dizebilir.Fakat else if yapısında değişken tanımını tekrar tekrar yapmak gerekir.
  • Switch-case daha az yazım zahmeti verdiğinden kodlama sırasında biraz olsun yükümüzü hafifletir.

Break

“break” komutu sayesinde case ‘ i tamamlarız.”break” komutu rastlanılan yerde, kod blogunu sonlandırır .Zaten “break” kelime anlamı olarak “kırmak” demektir.

Default

Switch-case yapısında belirlediğimiz koşulların dışında başka bir seçenek seçildiğinde , yani hesaba katmadığımız bir durum oluştuğunda otomatik olarak bir mesaj vermemiz gerektiğinde default komutunu kullanırız.

Şimdi örnek olarak switch-case yapısı ile plaka kodu seçildiğinde il adını veren bir program yapalım

Öncelikle formumuza bir listbox birde label ekleyelim.

private void listbox1_SelectedIndexChanged(object sender, EventArgs e)
{
// Burada değişkenimizi tanımlıyoruz.
byte plaka = Convert.ToByte(listbox1.Text);
//kontrol etmek istediğimiz değişkeni parantez içine yazıyoruz.

switch (plaka)
   {
        //case'imizi açıyoruz buradaki "18" değerimizdir.
        case 18:
                 // Koşulun gerçekleşmesi halinde olacak işlemleri bu aralığa yazıyoruz.
                 label1.Text=("Çankırı");
                 // Break komutu ile case ' imizi kapatıyoruz.
                 break;
        case 34:label1.Text="İstanbul";break;
        case 35:label1.Text="İzmir";break;
        case 58:label1.Text="Sivas";break;
        case 17:label1.Text="Çanakkale";break;

        // Default sayesinde hesaba katmadığımız bir durum olursa otamatik bir mesaj veriyoruz.
        default:
                 label1.Text = "Bilinmeyen Plaka kodu";
                 break;
   }
}