25 Mart 2015 Çarşamba

C++ Switch Case Yapısı

Bu yapı ile verilen bir değişkendeki veriyi kontrol ederek, program akışını bir çok seçenekten birine yönlendirir. Switch() ile değişkendeki veri alınır. Case ile değişendeki veri kontrol edilir. Eğer case'deki durumların hiçbirine uymazsa program default'da yer alan komutları çalıştıracaktır. Bunu if else yapısı ile de yapabiliriz. Fakat program kodları biraz uzun olacağından programcılar bu yapıyı tercih ediyorlar.


Kullanımı: 

switch(değişken) {

   case 1: {
      Komutlar 1
   break;
   }
   case 2: {
      Komutlar 2
   break;
   }
   case 3: {
      Komutlar 3
   break;
   }
    .
    .
    .
   case n: {
      Komutlar n
   break;
   }

   default: {
   Koşulların sağlanmadığı durumdaki komutlar.
   }
}

Default: Switch case yapısındaki koşulların sağlanmaması durumunda bu komuttan sonra gelen kodlar çalışacaktır. Kullanımı isteğe bağlıdır.
Break: Switch-case yapısında case yapılarının sadece birinin çalıştırılması için kullanılır. Kullanılmadığı durumda doğru olan koşuldan sonra bütün koşullar doğru kabul edilecektir. Kullanımı isteğe bağlıdır.

Uygulama 1:

Bu uygulamada kullanıcının girdiği sayıları kontrol edeceğiz.

#include <iostream>
#include <conio.h> // getch() fonksiyonu için.

using namespace std;

int main(){
 
 int x;
 
 cout << "1-3 arasinda bir sayi girin: ";
 cin >> x;
 
 switch(x){
  case 1: {
   cout << "1 sayisini girdiniz!";
   break;
  }
  case 2: {
   cout << "2 sayisini girdiniz!";
   break;
  }
  case 3: {
   cout << "3 sayisini girdiniz!";
   break;
  }
  default: {
   cout << "1-3 arasinda bir sayi girmediniz!";
  }
 }
 
 getch();
 return(0);
}

Uygulama 2:

Bu uygulamada switch case yapısı ile basit bir hesap makinesi yaptık.

#include <iostream>
#include <stdlib.h> // system("CLS") fonksiyonu için.

using namespace std;

int main(){
 
 int x, y, z, sonuc;
 
 while (1) {
  cout << endl << 
   "\t Toplama => 1\n "
   "\t Cikarma => 2\n "
   "\t Carpma  => 3\n "
   "\t Bolme   => 4\n "
   "\t Cikis   => 0\n\n ";
     
  cout << "Islemi seciniz:: ";
  cin >> z;
  
  if (z == 0)
   goto label; // z'nin 0 olması dırımında programı sonlandır.
     
  cout << endl << "Birinci sayiyi gir: ";
  cin >> x;
  cout << endl << "İkinci sayiyi gir: ";
  cin >> y;
   
  switch(z){
   case 1: {
    system("CLS"); // Ekrandaki verileri temizler.
    sonuc = x + y;
    cout << x << " + " << y << " = " << sonuc << endl;
    break;
   }
   case 2: {
    system("CLS");
    sonuc = x - y;
    cout << x << " - " << y << " = " << sonuc << endl;
    break;
   }
   case 3: {
    system("CLS");
    sonuc = x * y;
    cout << x << " * " << y << " = " << sonuc << endl;
    break;
   }
   case 4: {
    system("CLS");
    sonuc = x / y;
    cout << x << " / " << y << " = " << sonuc << endl;
    break;
   }
 
   default: {
    system("CLS");
    cout << endl << "Yanlis bir secim yaptiniz!" << endl;
   }
  }
 }
 
label:; 

 return(0);
}
Yazımızı okuduğunuz için teşekkür ederiz...

4 yorum:

  1. Iyi günler case lerin içinde tekrar switch case ya da if else kullanmak istersem nasıl yapabilirim

    YanıtlaSil
    Yanıtlar
    1. İkinci switch case yapısının içine girmeden hemen önce ; ilkinde int secim1 olarak tanımladığın gibi int secim2 vb. yeni bir değişken tanımlayıp içtekilerde onu kullanabilirsin.

      int secim1;
      cout<<"Seciminiz...:";
      cin>>secim1;
      switch(secim1)
      {
      case 1:
      cout<<"1)blabla"<>secim2;

      switch(secim2)
      {

      }

      }

      Sil
  2. 4 işlemin nasıl yapıldığını tanımlanmamış

    YanıtlaSil
  3. uygulama 2 nin goto ifadesi olmadan böyle bir yapı kurulabilir mi

    YanıtlaSil