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:

Kullanım Alanlarına Göre Farklı Linux Dağıtımları 3

Kullanım Alanlarına Göre Farklı Linux Dağıtımları

Kullanım Alanlarına Göre Farklı Linux Dagıtımları 2