Visual Studio C# Dersleri | Visual Studio Kurulumu | C# Programlama Dersleri
Switch-Case Deyimi
Switch-Case deyimi de If-Else deyimleri gibi karar kontrol mekanizmalarında kullanılmaktadır. Switch-Case deyimi genellikle karmaşık if-else bloklarının yerine, daha okunabilir oldukları için tercih edilmektedir. Switch-Case ile yapabileceğimiz karşılaştırmaları if-else ile de yapabiliriz.
Switch-Case yapısı şu şekilde çalışır; bir deyimin değeri, sabitlerden oluşan bir listede peş peşe test edilir. Deyimin değeri sabitlerden birisiyle eşleşince, bu eşleşmeyle ilgili işlemler gerçekleştirilir.
Switch-Case ifadesinin genel formu şu şekildedir;
Kullanımı:
switch(ifade) {
case sabit1:
Yapılacak işlemler;
break;
case sabit2:
Yapılacak işlemler;
break;
case sabit3:
Yapılacak işlemler;
break; . . .
default:
Yapılacak işlemler;
break;
}
Switch-Case yapısının çalışmasına bir göz atalım;
Önce switch parantezleri içerisindeki ifade hesaplanır.
Programın akışı, hesaplanan ifade ile aynı case sabitinin bulunduğu satıra gelir.
Eğer hesaplanan ifade, mevcut case sabitlerinden herhangi birisi ile eşleşmiyorsa default anahtar sözcüğünün bulunduğu yere gelir ve program buradan devam eder.
Her case satırı içerisindeki işlemlerimiz tamamlandıktan sonra, ilgili case satırının sonuna geldiğimizi belirtmek için break komutu kullanılır. Eğer aşağıdaki örnekteki gibi break komutu kullanılmazsa, “Control cannot fall through from one case label (‘case 1:’) to another” yani “Bir case etiketinden (‘case1:’) başka bir case etiketine geçilemez” hatasını alırız.
switch(ifade) {
case 1:
Yapılacak işlemler;
case 2:
Yapılacak işlemler;
break;
case 3:
Yapılacak işlemler;
break;
default:
Yapılacak işlemler;
break;
}
Switch-case yapısında case durumların sırasının sorun olmamaktadır. default durumunu bile ilk sıraya koyabilirsiniz. Sonuç olarak, iki durum aynı olamayacağı için ilgili case yapısına gelindiğinde o satırın çalışması sağlanacaktır.
switch(ifade) {
default:
Yapılacak işlemler;
break;
case 3:
Yapılacak işlemler;
break;
case 1:
Yapılacak işlemler;
break;
case 2:
Yapılacak işlemler;
break;
}
Switch-Case Yapısı İle İlgili Önemli Kurallar:
Case anahtar sözcüğünün yanındaki ifadeler sabit olmak zorundadırlar. Bu ifadeler içerisinde değişken bulunamaz.
Case ifadeleri herhangi bir tam sayı sabiti, karakter veya string sabiti olabilir.
Default durumunu istediğimiz yere yazabiliriz. Aynı şekilde case ifadelerini de istediğimiz sırada yazabiliriz.
Bir switch bloğunda iki veya daha fazla sayıda aynı değere sahip case ifadesi bulunamaz.
Bir switch bloğunda default case olmak zorunda değildir.
Akış herhangi bir case ifadesine geldiğinde, akış farklı bir case ifadesine yönlendirilmek istenirse goto anahtar sözcüğü kullanılır.