İç içe koşullar
- C++ kursu
- Başlangıç
- Ders 40/116
- 5 dk
İç 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
#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
#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?
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
bool hasLicense = true;
if (age >= 18) {
if (____) { std::cout << "Sürebilir"; }
}
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 |