📘 4.5 – Gelişmiş Koşul Örnekleri
🔹 Açıklama:
Basit if-else
yapılarının ötesinde, karmaşık kararlar içeren uygulamalar geliştirmek için birden fazla koşulu bir arada değerlendirebilmek gerekir. Bu bölümde:
- İç içe if blokları (nested if)
- Mantıksal bağlaçlarla (
&&
,||
) kurulan koşullar - Çok seviyeli karar süreçleri
- Kullanıcıdan gelen verilere göre derin yönlendirmeler
üzerinde durulacak. Hedef, öğrencinin gerçek senaryolara uygun kod yazabilmesini sağlamak.
📍 Kullanım Alanları:
- Kademeli indirim veya promosyon sistemleri
- Yaş, eğitim durumu ve gelir durumuna göre burs değerlendirmesi
- Alışveriş sepetinde fiyatlandırma ve kampanya kontrolü
- Giriş yetkisi olan kullanıcıların işlem sınırlarını belirleme
- Karmaşık sınav değerlendirme sistemleri
🎯 Kazanımlar:
- İç içe if yapılarını etkili kullanma
- Mantıksal bağlaçlarla çoklu kontrol gerçekleştirme
- Koşul hiyerarşisi kurabilme
- Gerçek hayat simülasyonlarını kodlayabilme
- Kullanıcı odaklı dinamik akışlar oluşturma
🧪 4.5 – Gelişmiş Koşul Örnekleri: Uygulamalı Senaryolar
📌 Örnek 1: Yaş ve Gelir Durumuna Göre Burs Hakkı
🎯 Amaç:
Öğrencinin yaşı ve gelir durumu dikkate alınarak burs verilip verilmeyeceğini belirlemek.
🎨 Form Elemanları:
txtYas
,txtGelir
(TextBox),btnKontrol
,lblSonuc
(Label)
💻 Kod:
private void btnKontrol_Click(object sender, EventArgs e)
{
if (int.TryParse(txtYas.Text, out int yas) &&
double.TryParse(txtGelir.Text, out double gelir))
{
if (yas <= 25)
{
if (gelir < 5000)
lblSonuc.Text = "Burs hakkı kazandınız.";
else
lblSonuc.Text = "Geliriniz burs sınırının üzerinde.";
}
else
{
lblSonuc.Text = "Yaş sınırını aştığınız için başvuru uygun değil.";
}
}
else
{
MessageBox.Show("Lütfen geçerli veri giriniz.");
}
}
📝 Açıklama:
İç içe if yapısı kullanıldı. İlk koşul yaş, ikinci koşul gelir durumu.
📌 Örnek 2: Kullanıcı Girişi ve Yetki Kontrolü
🎯 Amaç:
Kullanıcının adı, şifresi ve yetkisine göre sisteme alınıp alınmayacağına karar verilsin.
🎨 Form Elemanları:
txtAd
,txtSifre
,cmbYetki
(ComboBox),btnGiris
,lblDurum
💻 Kod:
private void btnGiris_Click(object sender, EventArgs e)
{
string ad = txtAd.Text;
string sifre = txtSifre.Text;
string yetki = cmbYetki.Text;
if (ad == "ahmet" && sifre == "1234")
{
if (yetki == "Admin")
lblDurum.Text = "Yönetici paneline hoş geldiniz.";
else if (yetki == "Kullanıcı")
lblDurum.Text = "Kullanıcı sayfasına yönlendiriliyorsunuz.";
else
lblDurum.Text = "Yetki tipi seçilmedi.";
}
else
{
lblDurum.Text = "Giriş başarısız.";
}
}
📝 Açıklama:
Hem kullanıcı doğrulaması hem de yetki kontrolü yapılıyor.
📌 Örnek 3: Fiyat ve Miktara Göre İndirim Hesaplama
🎯 Amaç:
Ürünün fiyatı ve miktarına göre farklı oranlarda indirim uygula.
🎨 Form Elemanları:
txtFiyat
,txtMiktar
,btnHesapla
,lblSonuc
💻 Kod:
private void btnHesapla_Click(object sender, EventArgs e)
{
if (double.TryParse(txtFiyat.Text, out double fiyat) &&
int.TryParse(txtMiktar.Text, out int miktar))
{
double toplam = fiyat * miktar;
double indirim = 0;
if (miktar >= 10)
{
if (toplam > 1000)
indirim = 0.20;
else
indirim = 0.10;
}
double odenecek = toplam - (toplam * indirim);
lblSonuc.Text = $"İndirimli Tutar: {odenecek:C2}";
}
else
{
MessageBox.Show("Lütfen geçerli değerler giriniz.");
}
}
📝 Açıklama:
İç içe ve bağlı koşullarla indirim uygulanıyor.
📌 Örnek 4: Sınav Başarı Durumu ve Katılım
🎯 Amaç:
Öğrencinin sınav puanı + ders katılımı bilgisine göre değerlendirme yap.
🎨 Form Elemanları:
txtPuan
,chkKatildi
(CheckBox),btnDeğerlendir
,lblSonuc
💻 Kod:
private void btnDeğerlendir_Click(object sender, EventArgs e)
{
if (int.TryParse(txtPuan.Text, out int puan))
{
if (puan >= 70)
{
if (chkKatildi.Checked)
lblSonuc.Text = "Başarılı – Aktif Katılım";
else
lblSonuc.Text = "Başarılı – Katılım Eksik";
}
else
{
lblSonuc.Text = "Başarısız – Not yetersiz.";
}
}
else
{
MessageBox.Show("Geçerli puan giriniz.");
}
}
📝 Açıklama:
Hem sınav sonucu hem de kullanıcı etkileşimi değerlendirilir.
📌 Örnek 5: Üçlü Şartla Kampanya Durumu
🎯 Amaç:
Kullanıcının yaş, alışveriş tutarı ve üyelik durumuna göre kampanyaya katılım hakkı kontrol edilir.
🎨 Form Elemanları:
txtYas
,txtTutar
,chkUyeMi
(CheckBox),btnKontrol
,lblKampanya
💻 Kod:
private void btnKontrol_Click(object sender, EventArgs e)
{
if (int.TryParse(txtYas.Text, out int yas) &&
double.TryParse(txtTutar.Text, out double tutar))
{
if (yas >= 18 && tutar >= 200 && chkUyeMi.Checked)
lblKampanya.Text = "Kampanyadan yararlanabilirsiniz.";
else
lblKampanya.Text = "Kampanya şartlarını sağlamıyorsunuz.";
}
else
{
MessageBox.Show("Verileri kontrol ediniz.");
}
}
📝 Açıklama:&&
operatörüyle üçlü koşul bağlanarak daha gelişmiş bir kontrol sağlanıyor.
✅ Özet:
Bu bölümde öğrenciler:
- Gerçek hayatta karşılaşabilecekleri senaryoları yazılıma dökmeyi
- İç içe ve mantıksal bağlaçlarla çok katmanlı koşullar kurmayı
- Kullanıcı dostu, doğru geri bildirim veren programlar üretmeyi
- Karar verme süreçlerini profesyonel uygulamalara taşımayı öğrenirler