C++ dilinde, switch-case
yapısı, bir değişkenin belirli değerlerine göre farklı kod bloklarını çalıştırmak için kullanılan bir kontrol yapısıdır. Özellikle, çok sayıda if-else
koşulu yazmak yerine, daha temiz ve düzenli bir kod yazmak için kullanılır. Bu yazıda, switch-case
yapısının nasıl çalıştığını ve nasıl kullanıldığını detaylı bir şekilde inceleyeceğiz.
switch-case
Yapısının Temel Kullanımı
switch-case
yapısı, bir değişkenin değerini kontrol eder ve bu değere karşılık gelen case
bloğuna gider. Eğer hiçbir case
bloğu ile eşleşme olmazsa, opsiyonel olarak default
bloğu çalıştırılır.
Söz Dizimi:
switch (değişken) {
case değer1:
// Değer1 ile eşleşirse çalışacak kod
break;
case değer2:
// Değer2 ile eşleşirse çalışacak kod
break;
default:
// Hiçbir değerle eşleşmezse çalışacak kod
}
değişken
: Değerini kontrol etmek istediğiniz değişken.case
: Bu, değişkenin alabileceği olası değerleri tanımlar.break
: Bircase
bloğu çalıştırıldığında,switch
yapısının dışına çıkmak için kullanılır.break
olmadan, bir sonrakicase
bloğu da çalışabilir (bu duruma “fall-through” denir).default
: Hiçbircase
bloğu ile eşleşmeyen durumlar için çalışacak olan bloğu belirtir. Bu blok opsiyoneldir.
Örnek:
Aşağıda, bir sayıya göre haftanın hangi günü olduğunu belirleyen bir switch-case
örneği bulunmaktadır.
#include <iostream>
using namespace std;
int main() {
int gün = 3; // Hafta günü (1 = Pazartesi, 2 = Salı, ...)
switch (gün) {
case 1:
cout << "Pazartesi" << endl;
break;
case 2:
cout << "Salı" << endl;
break;
case 3:
cout << "Çarşamba" << endl;
break;
case 4:
cout << "Perşembe" << endl;
break;
case 5:
cout << "Cuma" << endl;
break;
case 6:
cout << "Cumartesi" << endl;
break;
case 7:
cout << "Pazar" << endl;
break;
default:
cout << "Geçersiz gün!" << endl;
}
return 0;
}
Bu örnekte, gün
değişkenine bağlı olarak haftanın hangi günü olduğunu ekrana yazdırıyoruz. gün
3 olduğunda, program “Çarşamba” yazdırır. Eğer gün
değeri 1 ile 7 arasında değilse, default
bloğu çalışır ve “Geçersiz gün!” mesajı yazdırılır.
Switch-Case ile Dikkat Edilmesi Gerekenler
break
Kullanımı: Hercase
bloğunun sonunda birbreak
ifadesi bulunmalıdır. Aksi takdirde, programbreak
olmadan bir sonrakicase
bloğuna geçer ve bu istenmeyen sonuçlar doğurabilir. Bu duruma fall-through denir.- Farklı Veri Tipleri Kullanılamaz:
switch-case
yapısı yalnızca tamsayılar (int, char) ve enum türleriyle çalışır.float
,double
,string
gibi türler ileswitch-case
kullanılamaz. default
Bloğu Opsiyoneldir:default
bloğu, her zaman zorunlu değildir. Eğercase
ifadelerinin hepsi belirli bir durumu kapsıyorsa,default
bloğuna gerek yoktur.
Switch-Case ve Fall-through
Yukarıda da bahsettiğimiz gibi, switch-case
yapısında bir break
ifadesi olmadığında, kod bir sonraki case
bloğuna geçer. Bu duruma fall-through denir. fall-through
, istenildiğinde kullanılabilir ancak dikkatli olunması gerekir.
Fall-through Örneği:
#include <iostream>
using namespace std;
int main() {
int gün = 3;
switch (gün) {
case 1:
case 2:
case 3:
cout << "Hafta içi" << endl;
break;
case 6:
case 7:
cout << "Hafta sonu" << endl;
break;
default:
cout << "Geçersiz gün!" << endl;
}
return 0;
}
Bu örnekte, gün
1, 2 veya 3 olduğunda “Hafta içi” mesajı yazdırılacak, çünkü bu üç case
bloğu arasında bir break
ifadesi olmadığından, program case 1
, case 2
ve case 3
bloklarına “fall-through” yapar.
Sonuç
C++ dilinde switch-case
yapısı, bir değişkenin değerine göre farklı işlemler gerçekleştirmek için çok kullanışlı bir kontrol yapısıdır. if-else
yapısına göre daha düzenli ve okunabilir bir çözüm sunar, özellikle birden çok koşul kontrolü gerektiren durumlar için tercih edilir.