4.1 – if-else ve else-if zincirleri


📘 4.1 – if-else ve else-if Zincirleri


🔹 Açıklama:

Programlamanın en temel yapı taşlarından biri, koşullu ifadelerdir. C#’ta if, else if ve else yapıları sayesinde uygulamalar yalnızca veri değil, veriye göre karar da verebilir. Bu yapı, programı daha etkileşimli ve mantıklı hale getirir.

if-else zincirleri, birden fazla koşulun sıralı olarak test edilmesini sağlar. İlk doğru koşulda yapı çalışır ve kalan bloklar atlanır. Bu, özellikle sıralama, sınıflandırma ve durum analizi gibi işlemlerde kullanılır.


📍 Kullanım Alanları:

  • Sınav notu sınıflandırma
  • Yaş aralığına göre kategori belirleme
  • Kademeli indirim sistemleri
  • Menü seçimleri ve kullanıcı yönlendirmeleri
  • Kademeli puanlama sistemleri

🎯 Kazanımlar:

  • Birden fazla durumu sıralı biçimde değerlendirme
  • else if ile çoklu seçenekleri yönetme
  • else bloğuyla son durumu yakalama
  • Kod organizasyonu ve okunabilirliği artırma
  • Gerçek hayat senaryolarına uygun yapı kurma

🧪 4.1 – if-else ve else-if Zincirleri: Örneklerle Uygulama


📌 Örnek 1: Yaş Kategorisi Belirleme

🎯 Amaç:
Kullanıcının yaşına göre çocuk, genç, yetişkin veya yaşlı kategorisine ayırmak.

🎨 Form Elemanları:

  • txtYas (TextBox), btnKontrol (Button), lblSonuc (Label)

💻 Kod:

private void btnKontrol_Click(object sender, EventArgs e)
{
    if (int.TryParse(txtYas.Text, out int yas))
    {
        if (yas < 13)
            lblSonuc.Text = "Çocuk";
        else if (yas < 20)
            lblSonuc.Text = "Genç";
        else if (yas < 60)
            lblSonuc.Text = "Yetişkin";
        else
            lblSonuc.Text = "Yaşlı";
    }
    else
    {
        MessageBox.Show("Geçerli bir yaş giriniz.");
    }
}

📝 Açıklama:
Koşullar sırayla kontrol edilir. İlk sağlanan koşulda işlem yapılır ve diğer bloklara geçilmez.


📌 Örnek 2: Sıcaklık Değerlendirmesi

🎯 Amaç:
Girilen sıcaklık değerine göre kullanıcıyı bilgilendirme.

🎨 Form Elemanları:

  • txtSicaklik (TextBox), btnDegerlendir, lblDurum (Label)

💻 Kod:

private void btnDegerlendir_Click(object sender, EventArgs e)
{
    if (int.TryParse(txtSicaklik.Text, out int derece))
    {
        if (derece <= 0)
            lblDurum.Text = "Donma riski!";
        else if (derece <= 15)
            lblDurum.Text = "Soğuk hava";
        else if (derece <= 30)
            lblDurum.Text = "Ilık hava";
        else
            lblDurum.Text = "Sıcak hava";
    }
    else
    {
        MessageBox.Show("Geçerli sıcaklık giriniz.");
    }
}

📝 Açıklama:
Burada değer aralıkları dikkatlice sıralanmalı. Yoksa her koşul sağlanabilir ve hatalı çalışır.


📌 Örnek 3: Kademeli İndirim Hesaplama

🎯 Amaç:
Alışveriş tutarına göre farklı indirim oranı uygulamak.

🎨 Form Elemanları:

  • txtTutar (TextBox), btnHesapla, lblSonuc (Label)

💻 Kod:

private void btnHesapla_Click(object sender, EventArgs e)
{
    if (double.TryParse(txtTutar.Text, out double tutar))
    {
        double indirim = 0;

        if (tutar >= 1000)
            indirim = 0.20;
        else if (tutar >= 500)
            indirim = 0.10;
        else if (tutar >= 250)
            indirim = 0.05;

        double indirimTutari = tutar * indirim;
        double toplam = tutar - indirimTutari;

        lblSonuc.Text = $"İndirimli Tutar: {toplam:C2} (İndirim: {indirimTutari:C2})";
    }
    else
    {
        MessageBox.Show("Geçerli bir tutar giriniz.");
    }
}

📝 Açıklama:
En yüksek oranı yukarıya yazmak önemlidir. Aksi halde büyük tutarlar daha düşük oranlarla eşleşebilir.


📌 Örnek 4: Harf Notu Dönüştürme

🎯 Amaç:
Numerik notu harf notuna çevirmek.

🎨 Form Elemanları:

  • txtNot (TextBox), btnCevir, lblHarf (Label)

💻 Kod:

private void btnCevir_Click(object sender, EventArgs e)
{
    if (int.TryParse(txtNot.Text, out int not))
    {
        if (not >= 90)
            lblHarf.Text = "AA";
        else if (not >= 80)
            lblHarf.Text = "BA";
        else if (not >= 70)
            lblHarf.Text = "BB";
        else if (not >= 60)
            lblHarf.Text = "CB";
        else if (not >= 50)
            lblHarf.Text = "CC";
        else
            lblHarf.Text = "FF";
    }
    else
    {
        MessageBox.Show("Geçerli bir not giriniz.");
    }
}

📝 Açıklama:
Burada >= operatörüyle yukarıdan aşağıya sıralama yapılır. En yüksekten başlamak önemli.


📌 Örnek 5: Kullanıcı Girişi Kontrolü

🎯 Amaç:
Kullanıcı adı ve şifre kontrolü.

🎨 Form Elemanları:

  • txtKullanici, txtSifre (TextBox), btnGiris, lblDurum (Label)

💻 Kod:

private void btnGiris_Click(object sender, EventArgs e)
{
    string kullanici = txtKullanici.Text;
    string sifre = txtSifre.Text;

    if (kullanici == "admin" && sifre == "1234")
        lblDurum.Text = "Giriş başarılı!";
    else if (kullanici == "admin")
        lblDurum.Text = "Şifre yanlış!";
    else
        lblDurum.Text = "Kullanıcı bulunamadı.";
}

📝 Açıklama:
Koşullar birbiriyle ilişkilidir. && ile çoklu kontrol, else if ile alternatif senaryolar kontrol edilir.


✅ Özet:

Bu örneklerle öğrenciler:

  • Çoklu koşulları sıralı biçimde kontrol etmeyi öğrenir
  • Gerçek kullanıcı senaryolarını modellemeyi kavrar
  • Karar yapılarıyla programlara zekâ kazandırmayı başarır

Leave a Reply