İç 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 if bloğunun içine başka bir if yazabilirsin. Bu, iç içe koşullar oluşturur; örneğin önce büyük bir kategori, sonra alt kategori denetlersin.
int age = 25;
int has_ticket = 1;
if (age >= 18) {
if (has_ticket) {
printf("Girebilir\n");
} else {
printf("Bilet gerek\n");
}
} else {
printf("Yaş küçük\n");
}İç içe koşullar güçlüdür ama derinleştikçe okunurluğu düşürür. Üç seviyeden fazlaysa && operatörü veya yardımcı fonksiyon tercih et.
switch içinde if
switch bloklarının içinde de if kullanabilirsin. Bu, her durum için ek koşullu mantık istediğinde yararlıdır.
int role = 1;
int level = 5;
switch (role) {
case 1:
if (level >= 3) {
printf("Yönetici\n");
} else {
printf("Çırak\n");
}
break;
default:
printf("Misafir\n");
}Burada role=1 ve level=5 için çıktı Yönetici olur. İç içe yapıların her seviyesinde girinti okunurluğu korur.
Uygulama İç içe if ile giriş denetimi
Bir C programı yaz. int age = 25; ve int has_ticket = 0; tanımla. Dış if (age >= 18) koşulu yaz; içeride if (has_ticket) ile printf("Girebilir\n");, else ile printf("Bilet gerek\n"); yazdır. Dış else ile printf("Yaş küçük\n"); yazdır. #include <stdio.h> başta olsun.
Başlangıç kodu
#include <stdio.h>
int main(void) {
// age ve has_ticket tanımla, iç içe if ile denetle
return 0;
}Örnek çözüm
#include <stdio.h>
int main(void) {
int age = 25;
int has_ticket = 0;
if (age >= 18) {
if (has_ticket) {
printf("Girebilir\n");
} else {
printf("Bilet gerek\n");
}
} else {
printf("Yaş küçük\n");
}
return 0;
}Beklenen çıktı
Bilet gerek
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 İç if'i tamamla
if (age >= 18) {
____ (has_ticket) {
printf("Girebilir");
}
}
if (age >= 18) {
if (has_ticket) {
printf("Girebilir");
}
}
Açıklama: İçeride ikinci bir if denetimi yapılır.
2 age=25, has_ticket=0 için çıktı ne?
if (age >= 18) {
if (has_ticket) printf("Girebilir");
else printf("Bilet gerek");
} else printf("Yaş küçük");- Bilet gerek Doğru cevap
- Girebilir
- Yaş küçük
- Boş çıktı
Açıklama: age 18+ ama bilet yok; iç else çalışır.
3 İç içe yapıları eşleştir
| Kavram | Anlamı |
|---|---|
if içinde if |
Kademeli denetim |
switch içinde if |
Durumda alt koşul |
&& operatörü |
Tek if'te iki koşul |
else if |
Zincir koşul |