CodeBlanks Logo Icon CodeBlanks

İç içe koşullar

İç içe if ve switch ile karmaşık mantık kurmayı öğrenirsin.

İç içe if

Bir koşul, başka bir koşulun doğru olduğunda anlamlıysa iç içe if kullanırsın. Dış if'in bloğu içine ikinci bir if yazarsın; böylece iç koşul yalnızca dış koşul da doğruysa değerlendirilir.

Örneğin: if (age >= 18) { if (hasLicense) { std::cout << "Sürebilir"; } }. Burada hasLicense kontrolü yalnızca age 18 veya üzeri olduğunda yapılır. İç içe if okunabilirliği düşürebilir; bu yüzden mantıksal operatörlerle birleştirmek de iyi bir alternatiftir.

switch içinde if

switch ve if birlikte de kullanılabilir. Bir case'in içinde başka bir koşula göre farklı çıktı üretmek istiyorsan case gövdesine if yerleştirirsin. Bu, kategorik seçim ile alt koşulu birleştirir.

Örneğin switch (role) { case 1: if (active) { ... } break; } yapısında role 1 ve active true ise özel kod çalışır. İç içe yapıların okunabilirliğini korumak için girinti ve kısa bloklar önemlidir.

Uygulama Harf notu hesapla

score değişkenine 85 değeri verilmiş. if (score >= 90) ile grade'i "A", else if (score >= 80) ile "B", else ile "C" yap ve std::cout ile yazdır. Çıktı B olmalı.

Başlangıç kodu

main.cpp
#include <iostream>
#include <string>

int main() {
    int score = 85;
    std::string grade;
    // grade değişkenine harf notu ata ve yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <string>

int main() {
    int score = 85;
    std::string grade;
    if (score >= 90) {
        grade = "A";
    } else if (score >= 80) {
        grade = "B";
    } else {
        grade = "C";
    }
    std::cout << grade << std::endl;
    return 0;
}

Beklenen çıktı

B

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 İç içe if'te dış koşul yanlışsa ne olur?

main.cpp
if (outer) {
  if (inner) { ... }
}
  • İç koşul atlanır Doğru cevap
  • İç koşul yine de çalışır
  • Program çöker
  • Sonsuz döngü oluşur

Açıklama: Dış koşul yanlışsa iç bloğun hiçbiri çalışmaz.

2 İç içe if koşulunu yaz

Soru
bool hasLicense = true;
if (age >= 18) {
    if (____) { std::cout << "Sürebilir"; }
}
Cevap
bool hasLicense = true;
if (age >= 18) {
    if (hasLicense) { std::cout << "Sürebilir"; }
}

Açıklama: hasLicense iç koşul olarak doğru yerde durur.

3 Yapıyı senaryoya eşle

Kavram Anlamı
if (a) { if (b) { ... } } İki koşul da gerekli
switch (x) { case 1: if (y) { ... } } Case içinde alt koşul
if (a) { ... } else { ... } İki durumlu seçim
switch (x) { default: ... } Yakalama durumu

Başlangıç bölümündeki tüm dersler