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’lerdeki else 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

Sitedeki popüler yayınlar:

Python While Döngüsü

Python for döngüsü

Python Fonksiyonlar