Yükleniyor...

C++ Koşullu İfadeler: if, else if, switch

C++’ta if, else if ve switch yapılarını öğrenin. Koşullara göre karar verme ve program akışı örneklerle anlatılıyor.

C++ programlarında, bir koşula bağlı olarak farklı kod bloklarını çalıştırmak için koşullu ifadeler (conditional statements) kullanılır. Koşullu ifadeler, programın akışını yönetir ve karar verme mekanizmasını oluşturur. Bu makalede if, else if, else ve switch yapılarının nasıl çalıştığını örneklerle öğreneceğiz.


1. if Deyimi

if ifadesi, belirli bir koşul true (doğru) ise altındaki kod bloğunu çalıştırır. Koşul false (yanlış) ise o blok atlanır.


#include <iostream>
using namespace std;

int main() {
    int yas = 18;

    if (yas >= 18) {
        cout << "Reşitsiniz." << endl;
    }

    return 0;
}

Bu örnekte yas >= 18 ifadesi doğruysa ekrana “Reşitsiniz.” yazısı basılır. Eğer koşul sağlanmazsa (örneğin yas = 16 ise), hiçbir çıktı verilmez.


2. if – else Yapısı

Bir koşul doğruysa bir işlemi, yanlışsa başka bir işlemi gerçekleştirmek için if – else yapısı kullanılır.


int yas = 16;

if (yas >= 18) {
    cout << "Reşitsiniz." << endl;
} else {
    cout << "Henüz reşit değilsiniz." << endl;
}

Burada koşul yanlış olduğunda ikinci blok (else) çalışır.


3. if – else if – else Zinciri

Birden fazla koşulu sırayla test etmek için else if zinciri kullanılır. Program, ilk doğru koşulda ilgili bloğu çalıştırır ve zinciri sonlandırır.


#include <iostream>
using namespace std;

int main() {
    int notDegeri = 75;

    if (notDegeri >= 90) {
        cout << "Harf Notu: AA" << endl;
    } else if (notDegeri >= 80) {
        cout << "Harf Notu: BA" << endl;
    } else if (notDegeri >= 70) {
        cout << "Harf Notu: BB" << endl;
    } else if (notDegeri >= 60) {
        cout << "Harf Notu: CC" << endl;
    } else {
        cout << "Kaldınız." << endl;
    }

    return 0;
}

Bu örnekte, not değeri 75 olduğu için üçüncü koşul sağlanır ve ekrana “Harf Notu: BB” yazdırılır.


4. Birden Fazla Koşulun Birleştirilmesi

if ifadelerinde birden fazla koşulu mantıksal operatörlerle birleştirebilirsiniz:


int yas = 20;
bool kimlikVar = true;

if (yas >= 18 && kimlikVar) {
    cout << "Giriş yapabilirsiniz." << endl;
} else {
    cout << "Giriş izni yok." << endl;
}

5. switch Deyimi

switch ifadesi, bir değişkenin değerine göre farklı kod bloklarını çalıştırır. Özellikle menü veya sabit değerli seçimlerde if – else yerine daha okunaklı bir alternatiftir.


#include <iostream>
using namespace std;

int main() {
    int gun = 3;

    switch (gun) {
        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;
        default:
            cout << "Hafta sonu!" << endl;
    }

    return 0;
}

Bu örnekte gun = 3 olduğu için program case 3 bloğunu çalıştırır ve ekrana “Çarşamba” yazar.


6. break ve default Kullanımı

Örnek:


int secim = 2;

switch (secim) {
    case 1:
        cout << "1 seçildi" << endl;
    case 2:
        cout << "2 seçildi" << endl;
    default:
        cout << "Varsayılan blok" << endl;
}

Bu kodda break yazılmadığı için çıktı şu şekilde olur:


2 seçildi
Varsayılan blok

Bu davranışa “fall-through” (bir sonrakine geçme) denir. Genellikle istenmez, bu nedenle her case bloğunun sonunda break; kullanmak iyi bir pratiktir.


7. switch ile Karakter veya Enum Kullanımı

switch yapısı sadece int, char veya enum türleriyle kullanılabilir. double veya string türleriyle kullanılamaz.


char islem = '+';

switch (islem) {
    case '+':
        cout << "Toplama işlemi" << endl;
        break;
    case '-':
        cout << "Çıkarma işlemi" << endl;
        break;
    default:
        cout << "Bilinmeyen işlem" << endl;
}

Burada islem değişkeni '+' karakterine eşit olduğu için “Toplama işlemi” yazdırılır.


8. Örnek Uygulama: Basit Hesap Makinesi

Aşağıdaki örnek, if ve switch yapılarını birleştirerek kullanıcıdan alınan verilere göre işlem yapar.


#include <iostream>
using namespace std;

int main() {
    double a, b;
    char islem;

    cout << "Birinci sayıyı girin: ";
    cin >> a;
    cout << "İkinci sayıyı girin: ";
    cin >> b;
    cout << "İşlem seçin (+, -, *, /): ";
    cin >> islem;

    switch (islem) {
        case '+':
            cout << "Sonuç: " << a + b << endl;
            break;
        case '-':
            cout << "Sonuç: " << a - b << endl;
            break;
        case '*':
            cout << "Sonuç: " << a * b << endl;
            break;
        case '/':
            if (b != 0)
                cout << "Sonuç: " << a / b << endl;
            else
                cout << "Hata: Sıfıra bölme yapılamaz!" << endl;
            break;
        default:
            cout << "Geçersiz işlem seçimi." << endl;
    }

    return 0;
}

Bu uygulama, kullanıcıdan iki sayı ve bir işlem türü alarak sonucu hesaplar. Ayrıca hatalı girdi durumlarını da kontrol eder.


9. TL;DR

  • if → koşul doğruysa kod bloğunu çalıştırır.
  • else if → alternatif koşullar ekler.
  • else → hiçbir koşul sağlanmazsa çalışır.
  • switch → sabit değerlerle çoklu seçimlerde daha düzenlidir.
  • break → switch bloğundan çıkmayı sağlar.
  • Koşulların birleştirilmesinde &&, || ve ! operatörleri kullanılır.
  • Tüm örnekler Visual Studio 2022 veya GCC 11+ derleyicilerinde çalıştırılabilir.

İlişkili Makaleler