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;
}
&&→ Her iki koşul da doğruysa çalışır.||→ Koşullardan biri doğruysa çalışır.!→ Koşulun tersini alır.
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ı
- break: Koşul sağlandığında,
switchbloğundan çıkmayı sağlar. Eğer yazılmazsa, program altındakicaseifadelerini de yürütmeye devam eder. - default: Hiçbir
caseifadesi eşleşmezse bu blok çalışır.
Ö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.