C++ Switch-Case Komutu
SWITCH-CASE KOMUTU
Switch Case deyimi islev bakimindan if deyimine çok benzemektedir.
Çok sayida if islem bloklari kullandigimizda programin okunurlugu
azalacak ve programi izlemek zorlasacaktir. Programimizin bir
degerini bir çok degerle karsilastirmak gerektiginde switch komutunu
kullanacagiz. Switch seçenegi ile degiskenin durumuna göre bir çok
durum içersinden bir tanesi gerçeklestirilir. Istersek de if deyimi
ile switch case'' yi birlikte kullanabiliriz. Switch in yaptigi is
kisaca, ifadenin degerini sirayla sabitlerle karsilastirarak ve her
satiri islemektir.
switch( Kontrol Degiskeni )
{
case Sabit1 : komut1;
case Sabit2 : komut2;
.
.
.
default : Komutson;
}
Buna en basit örnegimizi verelim
//switch.cpp
// switch-case yi ögreniyoruz.
#include <iostream.h>
main()
{
int i;
cout<< " 1 ile 4 arasi sir sayi giriniz:";
cin>>i;
switch(i)
{
case 1 :cout<<"1 Girdiniz"; break;
case 2 :cout<<"2 Girdiniz"; break;
case 3 :cout<<"3 Girdiniz"; break;
case 4 :cout<<"4 Girdiniz"; break;
default:cout<<"1 ile 4 ten farkli";
}
}
Burada gördügümüz gibi i degiskenine bagli olarak program isliyor.
Case''lerinin aldigi degere göre kendinden sonra gelen komutlari
isliyorlar. Burada daha önce görmedigimiz break komutunu gördük.
Buna ilerde daha detayli olarak deginecegim. Fakat biraz bahsetmek
istiyorum. Programimizda degiskene 1 degerini verdigimizi farz
edelim. Case 1 adli satiri geçip ondan sonraki komut dizisini isleme
soktuk. Bu islemin tamamlanmasi için break komutu kullaniliyor.
Yazilimda break komutu goto gibi islev görür ve derleyiciye switch
komutundan çikmasi için talimat verir. Sorunu ortadan kaldirmak için
her durum için break deyimi eklemeliyiz (tavsiye). Ne demistik; bir
çok karsilastirma oldugunda switch''e ihtiyaç duyuyoruz.
Karsilastirmalarin hiç biri olmadigi anda da ortaya default tan
sonraki satirin islenmesi kaliyor. Sanirim bu örnekte basit olarak
anlamis olacagiz.
Daha karmasik bir örnek verecek olursak:
//ucgen.cpp
// Program girecegimiz ölçülere göre üçgenin Alan, Yükseklik ve
Tabanini bulur
// switch-case örnegimiz.
#include <iostream.h>
int main()
{
char secenek;
float alan, yukseklik, taban;
cout << "Program girecegimiz ölçülere göre üçgen''in Alan,
Yükseklik ve Tabanini bulur!\n" << endl
<< " A ---> Alan : Bulmak için yükseklik ve tabani girecegiz:" <<
endl
<< " h ---> Yükseklik : Bulmak için alan ve tabani girecegiz:" <<
endl
<< " t ---> Taban : Bulmak için alan ve yüksekligi girecegiz:" <<
endl
<< endl << endl;
cout<< "Seçeneginiz? ---> A, h, t :";
cin>> secenek;
switch(secenek)
{
case ''a'':
case ''A'':
{
cout<< endl <<endl <<"Yükseklik: ";
cin>> yukseklik;
cout<<endl << "Taban: ";
cin >> taban;
alan = 0.5 * taban * yukseklik;
cout<<endl << endl << "Alani: " << alan << endl;
break;
}
case ''h'':
case ''H'':
{
cout<< endl << endl <<"Alani: ";
cin>> alan;
cout<<endl << "Tanabi: ";
cin >> taban;
yukseklik = 2.0 * alan / taban;
cout << endl << endl << "Yükselik: " << yukseklik << endl;
break;
}
case ''t'':
case ''T'':
{
cout << endl <<endl <<"Alani: ";
cin >> alan;
cout << endl << "Yüksekligi: ";
cin >> yukseklik;
taban = 2.0 * yukseklik / alan;
cout << endl << endl <<"Tabani: " << taban << endl;
break;
}
}
return 0;
}
Gayet basit bir örnek degiskenleri tanimladik. Caseleri koyduk ve
caselerden sonra gelecek komut satirlarini yerlestirdik. Bu program
göründügü gibi zor degildir.
|