SWİTCH-CASE NEDİR?
Switch-case yapısı if-else yapısı ile aynı mantıkla çalışır.Kullanıcının seçimine göre yapılacak işlem değişir.Switch-case yapısınıı çok koşul olduğu zaman if-else kullanımına tercih etmeliyiz çünkü switch-case bizi bir çok if-else kullanımından kurtarıyor.
SWİTCH CASE YAPISI
Örnek olarak bilgisayar bizden 1 ile 5 arası bir sayı girmemizi istesin ve girdiğimiz sayıyı bize söylesin.
Öncelikle koşul değişkenimizi tanımlarız.Sonra girilen sayıya göre ne yazması gerektiyini kodlarız.
int sayi;
switch(sayi)
{
case 1: cout<<"Girdiyiniz sayi 1";break;
case 2: cout<<"Girdiyiniz sayi 2";break;
case 3: cout<<"Girdiyiniz sayi 3";break;
case 4:cout<<"Girdiyiniz sayi 4";break;
case 5:cout<<"Girdiyiniz sayi 5";break;
default:cout<<"Girdiyiniz sayi gecersiz";break;
}
Bu kodu inceliyelim.Switchin yanındakı parantezin içinde her zaman bizim koşul değişkenimiz olmalı.O değişkene göre yapılacak işlemler değişir.Daha sonra köşeli parantez açılmış ve o değişkenin durumuna göre kodlar yazılmış."case 1:" demek o değişkenin 1 olması durumunda burda yazan kodları uygula demektir..Önceden if yapısında if(sayi==1) gibi.Burda switch seçmemizin sebebide sürekli if açıp koşulu yeniden yazmamaktır.Daha sonra case yapısının sonunda "break;" var.Bu bilgisayara o durumun bittiğini ve durması gerektiğini söylüyor ve switch yapısından çıkartıyor.
Şimdi switch-case yapısıyla gerçekten işe yarıyacak bir program yazmayı deneyelim.Örneğin hesap makinesi.Kodumuz şöyle olur:
#include <iostream>
using namespace std;
int main() {
char sec;
int a,b;
cout<<"Lutfen yapmak istediyiniz islemi seciniz:"<<endl;
cout<<"Toplama icin t"<<endl<<"Cikarma icin e"<<endl<<"Carpma icin c"<<endl<<"Bolme icin b yaz"<<endl<<"Secim:";
cin>>sec;
switch(sec){
case 't':
cout<<"Toplamak istediyiniz iki sayiyi giriniz:";
cin>>a>>b;
cout<<"Toplam:"<<a+b;
break;
case 'e':
cout<<"Cikarmak istediyiniz iki sayiyi giriniz(once buyuk sayi:";
cin>>a>>b;
cout<<"Sonuc:"<<a-b;
break;
case 'c':
cout<<"Carpmak istediyiniz iki sayiyi giriniz:";
cin>>a>>b;
cout<<"Carpimları:"<<a*b;
break;
case 'b':
cout<<"Bolmek istediyiniz iki sayiyi giriniz(once bolunecek sayi):";
cin>>a>>b;
cout<<"Bolumleri:"<<a+b;
break;
default:cout<<"gecersiz giris";break;
}
return 0;
}
Kodu yorumlarsak koşul değişkenimiz secdir.Secime girilen harflere göre durumlar açılmış ve toplama çıkarma çarpma bölme gibi işlemler yaptırabiliyoruz.Kodu derleyicinize kopyalayıp nasıl çalıştığını inceliyebilirsiniz.
HATIRLATMALAR VE NOTLAR:
1-endl bir satır boşluk bırakmamızı sağlayan komuttur.
2-case 't': burada t harfini tırnak içine almamızın sebebi daha önceki derste söylediyim gibi char karekterleri tek tırnak içinde gösterilir.
3-endl yapısına alternatif olarak \n kullanırsak bu komutta boşluk bırakmamızı sağlar.Ek olarak \t komutuda büyük bir boşluk bırakmamızı sağlar.
\t ve \n KULLANIM ÖRNEKLERİ
cout<<"Merhaba\nDunya";
bu satır merhaba yazıp alta geçip dünya yazar.Bu satırla aynıdır;
cout<<"Merhaba"<<endl<<"Dunya";
\t icin ise
cout<<"Merhaba\tDunya";
Merhaba yazdıktan sonra büyük bir boşluk bırakıp dunya yazar.