C Switch Case; C dilinde büyük çoğunlukla tercih ve şartlara ihtiyaç duyduğumuzu daha önce belirtmiştik. İf else şart döngüsü dilin birçok yerinde kullanılmakta ancak birden fazla seçenekli durumlarda İf Else döngüsü çok ağır kalmakta. İşte tam da bu tür durumlarda yardımımıza Switch Case ifadesi yetişiyor.
Switch Case İfadesi
Switch Case ifadesi genellikle birden fazla seçeneğin sunulduğu durumlarda kullanılır. Diğer döngü ifadelerinde seçenekler True ve False iken bu ifade içerisine istediğiniz kadar seçenek ekleyebilirsiniz. Daha çok seçimler için kullanılmakta olup çok hızlı çalışan bir ifadedir.
switch (n)
{
case by1:
// n by1 'e eşit ise çalıştırılacak kod;
break;
case by2:
// n by2'ye eşit ise çalıştırılacak kod;
break;
case by3:
// n by3'ye eşit ise çalıştırılacak kod;
break;
case by4:
// n by4'ye eşit ise çalıştırılacak kod;
break;
case by5:
// n by5'ye eşit ise çalıştırılacak kod;
break;
.
.
.
default:
// n herhangi bir sabitle eşleşmezse çalıştırılacak kod
}
Yukarıdaki şablonu incelediğimizde n değerinin by2 olduğunu varsayarsak işlemler by2’nin içerisindeki kodları sıraya alır ve break ifadesiyle karşılaşınca ya Kadar devam eder. Break ile karşılaşınca Switch Case sona ermiş olur.
Switch Case İfadesi Nasıl Çalışır?
Switch ifadesi ile eşleşen bir sabit değeri bulunduğunda o satırda bulunan kodlar çalışacaktır. Seçenekler arasında eşleşen bir değer yok ise en altta yani “default” ifadesi içindeki kodlar çalışacaktır. Belirlenen seçeneklerden Max bir tane çalışacağı için ifade çok hızlı bir biçimde gerçekleşecektir. Aynı ifade İf Else ile yapılabilir ancak iç içe birden fazla ifade kullanılacağı için bu çok ağır çalışan bir ifade olacaktır.

Örnek: Switch Case İfadesi
// switch ifadesini kullanarak Basit bir hesap makinesi yazalım
#include <stdio.h>
int main() {
char islem;
double sayi1,sayi2;
printf("bir işlem seçin (+, -, *, /): ");
scanf("%c", &islem);
printf("iki sayı giriniz: ");
scanf("%lf %lf",&sayi1, &sayi2);
switch(islem)
{
case '+':
printf("%.1lf + %.1lf = %.1lf",sayi1, sayi2, sayi1+sayi2);
break;
case '-':
printf("%.1lf - %.1lf = %.1lf",sayi1, sayi2, sayi1-sayi2);
break;
case '*':
printf("%.1lf * %.1lf = %.1lf",sayi1, sayi2, sayi1*sayi2);
break;
case '/':
printf("%.1lf / %.1lf = %.1lf",sayi1, sayi2, sayi1/sayi2);
break;
// islem herhangi bir durumla eşleşmiyor (+, -, *, /)
default:
printf("Hata! bir sayı girmediniz");
}
return 0;
}
Çıktısı :
bir işlem seçin (+, -, *,): -
iki sayı giriniz: 32.5
12.4
32.5 - 12.4 = 20.1