4.5 – Gelişmiş Koşul Örnekleri


📘 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

Leave a Reply