C++ Switch Case Kullanımı

C++ ta switch yapısını nasıl kullanabileceğinizi anlatacağım. Öncelikle case içinde yalnızca bir koşul gerektiren kullanımlar için bir örnek, daha sonra case içinde birden fazla koşul gerektiren bir örnek yazıp anlatacağım. İlk olarak bir koşullu örneğimize geçelim.


#include <iostream>
using namespace std;
int main() {    
     	int number=0; 
        cout<<"1-3 arasi bir deger giriniz ? \n";
        cin>>number;
        
        switch(number){
    	    case 1:
		cout<<"Girilen deger 1"<<endl; 
		break;
		case 2:
		cout<<"Girilen deger 2"<<endl; 
	        break;
	        case 3:
		cout<<"Girilen deger 3"<<endl;  
		break;
		default:
		cout<<"Girilen deger 1-3 arasinda olmalidir"<<endl;
        }
							   
    system("pause");
    return 0;
}

Yukarıdaki kodda öncelikle kullanıcıdan integer bir değer alıp “number” değişkenine atıyoruz. Daha sonra bu değişkeni switche parametre olarak gönderiyoruz. Gönderdiğimiz değeler case içindeki koşullarla karşılaştırılıyor. Girdiğimiz değer 2 olduğu için “case 2:” koşulu doğru olarak sağlanıyor ve ekrana “Girilen deger 2” yazısı ekrana yazılıyor. Case sonuna break yazdığımız için yazıyı yazdıktan sonra switch bloğundan çıkarak programı sonlandırıyor. Eğer 1-3 arasından başka başka değer girseydik bu sefer default kısmı çalışacaktı. Çünkü default kısmı caseler harici gelen değerler için çalışmaktadır. Bu yüzden ekrana “Girilen deger 1-3 arasinda olmalidir” diye hata mesajı verecekti. Default örneği de aşağıdaki gibidir.

İki koşullu örnek içinde yine kullanıcıdan bir sayı alalım bu sefer caselerde sayının 0-4 arasında olma ya da 5-10 arasında olma durumlarını içeren bir switch yapısı kurgulayalım.


#include <iostream>
using namespace std;
int main() {    
     	int number=0; 
        cout<<"0-10 arasi bir deger giriniz ? \n";
        cin>>number;
        
        switch(number){
    	         case 0 ... 4:
		 cout<<"Girilen deger 0-4 arasindadir"<<endl; 
		 break;
		 case 5 ... 10:
		 cout<<"Girilen deger 5-10 arasindadir"<<endl; 		     
		break;
	        default:
		cout<<"Girilen deger 0-10 arasinda olmalidir"<<endl;
        }
							   
    system("pause");
    return 0;
}

Normalde böyle durumlarda switch yapısı yerine if-else yapısı kullanmak daha mantıklıdır fakat olduki size illa switch yapısı ile yapın denildiyse yazmanız gereken kod yukardaki gibi olmalıdır. Aralıklar için “başlangıç değeri boşluk üç nokta boşluk bitiş değeri” şeklinde bir yapı kullanırsanız aralık koşulunu sağlamış oluyorsunuz. Başlangıç ve bitiş değerleri de case içine dahildir. Bu yapmanın bir diğer yoluda break koymadan hangi değer bitiş değeri ise o değerden sonra break konularak yapıyı oluşturmaktır. Aşağıdaki kod bloğu bu yapıya örnektir.


#include <iostream>
using namespace std;
int main() {    
     	int number=0; 
        cout<<"0-10 arasi bir deger giriniz ? \n";
        cin>>number;
        
        switch(number){
    	    case 0:
    	    case 1:
    	    case 2:
    	    case 3:
    	    case 4:
			cout<<"Girilen deger 0-4 arasindadir"<<endl; 
			break;
			case 5:
			case 6:
			case 7:
			case 8:
			case 9:
			case 10:
			cout<<"Girilen deger 5-10 arasindadir"<<endl; 		     
			break;
			default:
			cout<<"Girilen deger 0-10 arasinda olmalidir"<<endl;
        }
							   
    system("pause");
    return 0;
}

Yukarıdaki iki kodun çıktısıda aynıdır. Örnek veri girişi ve çıktıları aşağıdaki gibidir.

Furkan Aktaş

Bilgisayar Mühendisiyim. Microsoft MCSA Web Applications Sertifikasına Sahibim. Aktif iş hayatımda Full Stack .Net Developer olarak çalışmaktayım.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir