C Programlama switch - case Yapısı

C Programlama 


switch - case Yapısı : Bu yapı bir değişkenin içeriğine bakarak, programın akışını bir çok seçenekten birine yönlendirir. case (durum) yapısından sonra değişkenin durumu belirlenir ve sonraki gelen satırlar işleme girer. Aksi söz konu olduğunda gerçekleştirilmesi istenen deyimler default deyiminden sonraki kısımda bildirilir. Kısaca yapının temel amacı  değişkenin değerine göre programın çalışmasına yön vermektir. Aynı işlem if else yapısı ilede uygulanabilsede daha kolay okunması nedeniyle programcılar tarafından tercih edilmektedir.

switch - case yazım biçimi  ve akış diyagramı :
switch( degisken ) {
 case sabit1:
  komut(lar)
  [break]
 case sabit2:
  komut(lar)
  [break]
 .
 .
 .
 case sabitN:
  komut(lar)
  [break]
 default:
  komut(lar);
}
Örnek  sitch - case kullanımı 1 :
#include <stdio.h>

int main(int argc, const char * argv []) {
int s1 =0;
printf("Lutfen bir sayi giriniz:");
scanf("%d" , &s1);

switch (s1){
case 1:
    printf("Girilen sayi degeri: 1\n");
    break;
case 2:
    printf("Girilen sayi degeri: 2\n");
    break;
default:
    printf("Girilen sayi degeri gecersiz \n");
    break;
        }
return 0;
}

Örnekte girilen integer deger sayının 1 veya 2'ye eşit olup olmadığının kontrolü yapılmaktadır. Programa 1 veya 2 dışında bir deger girildiğinde ekran "Girilen sayi degeri gecersiz" ifadesi yazdırılmaktadır.

Örnek  sitch - case kullanımı 2 :
#include <stdio.h>

int main(void)
{
     char karakter;

     printf("Lutfen bir karakter giriniz:\n");

     karakter = getchar();
     switch (karakter)
     {
       case 'a':
          printf("a karakterini girdiniz\n");
          break;
       case 'b':
          printf("b karakterini girdiniz\n");
          break;
       default:
          printf("a veya b karakterlerinden birisini girmediniz\n");
          break;
     }

return 0;
}

Default Anahtar Kelimesi : Kelime anlamı olarak varsayılan demektir. Eğer, switch satırındaki değişken değeri case satırlarında yer alan sabit değerlerin herhangi biri ile aynı değeri taşımıyorsa, program default satırında yer alan işlem satırı veya satırlarını çalıştırır. default satırının tanımlanması tamamen isteğe bağlıdır. Yani, bu satır tanımlanmasa bile switch kalıbı normal olarak çalışır.


Break Anahtar Kelimesi : switch - case yapısında bir koşulda break anahtar kelimesi kullanılmaz ise  koşuldan sonra gelen koşul otomatik olarak çalışır. Break anahtar kelimesi tanımlanmasıda aynen default gibi isteğe bağlıdır.

Örnek : 
#include <stdio.h>

int main(void)
{
     char fenerbahce, besiktas, galatasaray;

     printf("Lutfen bir karakter (b,f,g) giriniz:\n");

     fenerbahce, besiktas, galatasaray  = getchar();
     switch (fenerbahce, besiktas, galatasaray)
     {
       case 'f':
          printf("fenerbahce\n");
          break;
       case 'b':
          printf("besiktas\n");
          break;
       case 'g':
          printf("galatasaray\n");
          break;
       default:
          printf("b,f,g karakterlerinden birisini girmediniz\n");
          break;
     }

return 0;
}