📘 3.1 – Karar Yapıları: if, else if, else
🔹 Açıklama:
Programlamada çoğu işlem belirli bir koşula bağlı olarak gerçekleşir. C#’ta bu koşulları kontrol etmek ve farklı senaryolarda farklı işlemler yapmak için if, else if, else blokları kullanılır.
Bu yapı sayesinde kullanıcıdan alınan verilere göre:
- Hatalar engellenebilir,
- Doğru yönlendirmeler yapılabilir,
- Seçime bağlı işlemler tanımlanabilir,
- Gelişmiş etkileşimler sağlanabilir.
Bu bölümde öğrenciler, karar yapılarını hem basit hem de iç içe (nested) şekilde kullanmayı öğrenecekler.
📍 Kullanım Alanları:
- Yaş kontrolü ve sınıflandırma
- Not sistemlerinde “Geçti/Kaldı” belirleme
- Şifre doğrulama ve kullanıcı girişi
- Ürün indirim koşulları
- Seçime göre farklı arayüzler oluşturma
🎯 Kazanımlar:
- Koşullu ifadeleri tanıyıp uygulayabilme
- if, else if, else bloklarını doğru sırada kullanma
- Çoklu durumları yönetebilme
- Gelişmiş kullanıcı etkileşimleri oluşturabilme
- Kod okunabilirliğini ve kontrol akışını planlayabilme
🧪 3.1 – Karar Yapıları: if, else if, else – Örneklerle Uygulama
📌 Örnek 1: Sıcaklık Değerine Göre Uyarı Verme
🎯 Amaç:
Kullanıcının girdiği sıcaklık değerine göre uygun uyarıyı göstermek.
🎨 Form Elemanları:
txtSicaklik
(TextBox)btnUyar
(Button)lblUyari
(Label)
💻 Kod:
private void btnUyar_Click(object sender, EventArgs e)
{
if (double.TryParse(txtSicaklik.Text, out double derece))
{
if (derece < 0)
lblUyari.Text = "Dikkat! Hava donma noktasının altında.";
else if (derece >= 0 && derece <= 15)
lblUyari.Text = "Hava serin, üzerini giy!";
else
lblUyari.Text = "Hava güzel, dışarı çıkmak için ideal.";
}
else
{
MessageBox.Show("Lütfen geçerli bir sıcaklık değeri giriniz.");
}
}
📝 Açıklama:
Koşullar mantıksal sıralamayla kontrol edildi. Her aralık için uygun mesaj verildi. else if
ile alternatif yollar ayrıldı.
📌 Örnek 2: Sınav Notuna Göre Harf Notu Belirleme
🎯 Amaç:
Öğrencinin aldığı nota göre harf karşılığını yazdırmak.
🎨 Form Elemanları:
txtNot
(TextBox)btnHarfNotu
(Button)lblHarf
(Label)
💻 Kod:
private void btnHarfNotu_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 (Kaldınız)";
}
else
{
MessageBox.Show("Lütfen geçerli bir not giriniz.");
}
}
📝 Açıklama:
Koşulların üstten alta doğru değerlendirilmesi önemlidir. En yüksek nottan başlanır, aksi takdirde mantık hatası oluşabilir.
📌 Örnek 3: Kullanıcı Girişi Doğrulama
🎯 Amaç:
TextBox’a girilen kullanıcı adı ve şifreye göre giriş izni vermek.
🎨 Form Elemanları:
txtKullanici
(TextBox)txtSifre
(TextBox)btnGiris
(Button)
💻 Kod:
private void btnGiris_Click(object sender, EventArgs e)
{
string kullanici = txtKullanici.Text;
string sifre = txtSifre.Text;
if (kullanici == "admin" && sifre == "1234")
MessageBox.Show("Giriş başarılı.");
else
MessageBox.Show("Kullanıcı adı veya şifre yanlış.");
}
📝 Açıklama:
Koşullu ifadelerde birden fazla durum &&
(ve) operatörü ile bağlanabilir. Girilen veriler kontrol edilerek yönlendirme yapılır.
📌 Örnek 4: Sayının Pozitif, Negatif veya Sıfır Olduğunu Belirtme
🎯 Amaç:
Girilen sayının işaretini analiz etmek.
🎨 Form Elemanları:
txtSayi
(TextBox)btnKontrolEt
(Button)lblSonuc
(Label)
💻 Kod:
private void btnKontrolEt_Click(object sender, EventArgs e)
{
if (int.TryParse(txtSayi.Text, out int sayi))
{
if (sayi > 0)
lblSonuc.Text = "Pozitif sayı";
else if (sayi < 0)
lblSonuc.Text = "Negatif sayı";
else
lblSonuc.Text = "Sayı sıfırdır";
}
else
{
MessageBox.Show("Lütfen geçerli bir tam sayı giriniz.");
}
}
📝 Açıklama:
Üç olasılık if – else if – else
yapısıyla karşılanır. Bu yapı, öğrencilerin karar bloklarını sağlam oturtması açısından önemlidir.
📌 Örnek 5: CheckBox ile Yaş Doğrulama
🎯 Amaç:
Kullanıcının yaşını girip onay kutusunu işaretlemesine göre işlem yapmak.
🎨 Form Elemanları:
txtYas
(TextBox)chkOnay
(CheckBox)btnDevam
(Button)
💻 Kod:
private void btnDevam_Click(object sender, EventArgs e)
{
if (!chkOnay.Checked)
{
MessageBox.Show("Lütfen 18 yaşında olduğunuzu onaylayınız.");
return;
}
if (int.TryParse(txtYas.Text, out int yas))
{
if (yas >= 18)
MessageBox.Show("Giriş yapabilirsiniz.");
else
MessageBox.Show("18 yaş altı kullanıcılar giremez.");
}
else
{
MessageBox.Show("Geçerli bir yaş giriniz.");
}
}
📝 Açıklama:
Önce CheckBox kontrolü yapılır. Şart sağlanmazsa return
ile çıkılır. Bu örnek, kullanıcı izin sistemleri için başlangıç seviyesinde çok değerlidir.
✅ Özet:
Bu bölümle birlikte öğrenciler artık karar yapılarıyla programı yönlendirme becerisi kazandı. Gerçek hayatta karşılaşılan çoğu yazılım mantığı, bu temel üzerinden yükselir.