C++ Switch Case
C++’ta switch-case
, çok sayıda durumu kontrol etmek için kullanılan yapıdır. Özellikle bir değişkenin değerine göre farklı işlemler yapmak istediğimizde if-else
yerine daha düzenli ve okunabilir bir yapı sağlar.
🧱 1. switch-case Yapısının Temel Söz Dizimi
switch (deger) {
case sabit1:
// Kod bloğu
break;
case sabit2:
// Kod bloğu
break;
...
default:
// Hiçbir case eşleşmezse çalışır
}
-
switch
içine sadece bir değişken veya ifade yazılır. -
case
ifadeleri sabit (const) değerler olmalıdır. -
break
komutu, o case bloğundan çıkışı sağlar. -
default
, hiçbir case uyuşmazsa çalışır (tüm if-else’lerdekielse
gibi).
✅ 2. Basit switch-case Örneği
Örnek: Rakamdan güne geçiş
#include <iostream>
using namespace std;
int main() {
int gun;
cout << "1-7 arasında bir sayı girin: ";
cin >> gun;
switch (gun) {
case 1:
cout << "Pazartesi" << std::endl;
break;
case 2:
cout << "Salı" << std::endl;
break;
case 3:
cout << "Çarşamba" << std::endl;
break;
case 4:
cout << "Perşembe" << std::endl;
break;
case 5:
cout << "Cuma" << std::endl;
break;
case 6:
cout << "Cumartesi" << std::endl;
break;
case 7:
cout << "Pazar" << std::endl;
break;
default:
cout << "Geçersiz gün!" << std::endl;
}
return 0;
}
📌 Çıktı Örneği:
1-7 arasında bir sayı girin: 3
Çarşamba
⚠️ 3. break Kullanmazsak Ne Olur? (Fall-through)
Eğer break
kullanmazsan, bir case'den sonraki tüm case'ler çalışır.
Örnek: break olmadan
#include <iostream>
using namespace std;
int main() {
int sayi = 2;
switch (sayi) {
case 1:
cout << "Bir\n";
case 2:
cout << "İki\n";
case 3:
cout << "Üç\n";
default:
cout << "Diğer\n";
}
return 0;
}
📌 Çıktı:
İki
Üç
Diğer
❗ Açıklama: case 2
eşleştiği için oradan başlar ve aşağıya doğru tüm case'leri çalıştırır. Bu yüzden her case
'den sonra break kullanmak genellikle gereklidir.
🧠 4. default Kullanımı
default
, hiçbir case
eşleşmediğinde çalışır.
int sayi = 10;
using namespace std;
switch (sayi) {
case 1:
cout << "Bir\n";
break;
case 2:
cout << "İki\n";
break;
default:
cout << "Bilinmeyen sayı\n";
}
📌 Çıktı:
Bilinmeyen sayı
🔢 5. Karakter (char) ile switch-case Kullanımı
switch
sadece int
, char
, enum
gibi tamsayı veri tipleriyle çalışır.
#include <iostream>
using namespace std;
int main() {
char secim;
cout << "Bir işlem seçin (a, b, c): ";
cin >> secim;
switch (secim) {
case 'a':
cout << "A seçildi\n";
break;
case 'b':
cout << "B seçildi\n";
break;
case 'c':
cout << "C seçildi\n";
break;
default:
cout << "Geçersiz seçim\n";
}
return 0;
}
💡 6. Aynı Sonuca Sahip Birden Fazla case
Birden fazla durumu aynı işlemle ele almak istersen case
bloklarını art arda yazabilirsin:
#include <iostream>
using namespace std;
int main() {
int notDegeri;
cout << "Notunuzu girin (0-100): ";
cin >> notDegeri;
switch (notDegeri / 10) {
case 10:
case 9:
cout << "Puan: A" << std::endl;
break;
case 8:
cout << "Puan: B" << std::endl;
break;
case 7:
cout << "Puan: C" << std::endl;
break;
case 6:
cout << "Puan: D" << std::endl;
break;
default:
cout << "Puan: F" << std::endl;
}
return 0;
}
📌 notDegeri / 10
ifadesi sayesinde 90-100 arası case 9 ve 10
olur.
🚫 7. switch-case Kullanırken Dikkat Edilecekler
Uyarı | Açıklama |
---|---|
switch sadece int , char , enum gibi tamsayı türlerinde çalışır |
float , double , string gibi türlerle çalışmaz |
Her case ’den sonra genellikle break kullanılır |
Aksi halde “fall-through” olur |
default kullanmak isteğe bağlıdır ama önerilir |
Böylece tüm olasılıklar kapsanmış olur |
📌 Özet
✅ switch-case
, çok sayıda durumu temiz şekilde kontrol etmek için kullanılır.
✅ case
ifadeleri sabit olmalı ve genellikle break
ile bitirilmelidir.
✅ default
ifadesi, eşleşmeyen tüm durumları yakalamak için kullanılır.
✅ char
, int
, enum
gibi türlerle kullanılabilir; float
ya da string
ile kullanılamaz.
✅ switch-case
, kodun okunabilirliğini artırır, özellikle çoklu if-else
'lerden daha temizdir.
Yorumlar
Yorum Gönder