3.2 – Mantıksal Operatörler


📘 3.2 – Mantıksal Operatörler (&&, ||, !)


🔹 Açıklama:

Mantıksal operatörler, birden fazla koşulun aynı anda değerlendirilmesini sağlar. Programlama dünyasında birçok durum sadece tek bir koşulla değil, birden fazla koşulun birleşimiyle anlam kazanır.

C#’ta kullanılan temel mantıksal operatörler şunlardır:

  • && (VE): Tüm koşullar doğruysa true döner.
  • || (VEYA): Koşullardan en az biri doğruysa true döner.
  • ! (DEĞİL): Koşulun sonucunu tersine çevirir.

Bu operatörler if-else blokları ve kullanıcı girişleriyle birleştirilerek daha esnek ve gerçek hayata uygun karar mekanizmaları kurmaya olanak tanır.


📍 Kullanım Alanları:

  • Giriş sistemlerinde kullanıcı adı ve şifre kontrolü
  • Yaş ve onay gibi birden fazla şartı sağlayan kullanıcı kontrolleri
  • Karmaşık form doğrulamaları
  • Oyun veya simülasyon gibi mantıksal test gerektiren sistemler
  • Ticari hesaplamalarda çoklu kriter kontrolleri

🎯 Kazanımlar:

  • Birden fazla koşulu birlikte değerlendirebilme
  • Doğru senaryoda doğru operatörü seçebilme
  • Kodun akışını mantıksal olarak tasarlayabilme
  • if, else if, else yapılarıyla entegre mantıksal ifadeler kurma
  • Değil (!) operatörüyle negatif durumları yorumlayabilme

🧪 3.2 – Mantıksal Operatörler (&&, ||, !) – Örneklerle Uygulama


📌 Örnek 1: Kullanıcı Adı ve Şifre Doğrulama (&& Kullanımı)

🎯 Amaç:
Girilen kullanıcı adı ve şifre doğruysa girişe izin ver.

🎨 Form Elemanları:

  • txtKullaniciAdi (TextBox)
  • txtSifre (TextBox)
  • btnGiris (Button)
  • lblDurum (Label)

💻 Kod:

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

    if (kullanici == "admin" && sifre == "1234")
        lblDurum.Text = "Giriş başarılı.";
    else
        lblDurum.Text = "Hatalı kullanıcı adı veya şifre.";
}

📝 Açıklama:
&& operatörü her iki koşul doğruysa işlem yapar. Giriş sistemlerinde yaygın kullanılır.


📌 Örnek 2: Yaş ve Onay Kutusu Kontrolü (&& Kullanımı)

🎯 Amaç:
Kullanıcının 18 yaşında ve onay kutusunu işaretlemiş olmasını kontrol et.

🎨 Form Elemanları:

  • txtYas (TextBox)
  • chkOnay (CheckBox)
  • btnDevam (Button)
  • lblDurum (Label)

💻 Kod:

private void btnDevam_Click(object sender, EventArgs e)
{
    if (int.TryParse(txtYas.Text, out int yas))
    {
        if (yas >= 18 && chkOnay.Checked)
            lblDurum.Text = "İzin verildi.";
        else
            lblDurum.Text = "Yaş uygun değil ya da onay kutusu işaretlenmedi.";
    }
    else
    {
        MessageBox.Show("Lütfen geçerli bir yaş giriniz.");
    }
}

📝 Açıklama:
Koşullardan biri bile sağlanmazsa işlem yapılmaz. İki koşul bir arada değerlendirildi.


📌 Örnek 3: Ürün Seçimi (|| Kullanımı)

🎯 Amaç:
Kullanıcı “Bilgisayar” veya “Tablet” seçmişse indirim hakkı kazansın.

🎨 Form Elemanları:

  • cmbUrun (ComboBox)
  • btnKontrolEt (Button)
  • lblMesaj (Label)

💻 Kod:

private void btnKontrolEt_Click(object sender, EventArgs e)
{
    string secilen = cmbUrun.SelectedItem?.ToString();

    if (secilen == "Bilgisayar" || secilen == "Tablet")
        lblMesaj.Text = "İndirim kazandınız!";
    else
        lblMesaj.Text = "Seçilen ürün indirim kapsamında değil.";
}

📝 Açıklama:
|| operatörü, koşullardan en az biri doğruysa işlemi uygular. Alternatif senaryolarda çok etkilidir.


📌 Örnek 4: Şart Sağlanmıyorsa İşlem Yapma (! Kullanımı)

🎯 Amaç:
Kullanıcı onay kutusunu işaretlemediyse uyarı ver.

🎨 Form Elemanları:

  • chkOkudum (CheckBox)
  • btnKaydet (Button)

💻 Kod:

private void btnKaydet_Click(object sender, EventArgs e)
{
    if (!chkOkudum.Checked)
    {
        MessageBox.Show("Devam etmek için kutucuğu işaretlemelisiniz.");
        return;
    }

    MessageBox.Show("Kayıt başarılı.");
}

📝 Açıklama:
! operatörüyle negatif durum kontrolü yapılır. Kullanıcının işlem yapmaması da bir koşuldur.


📌 Örnek 5: Not Ortalaması ve Devamsızlık (&&, || Kullanımı)

🎯 Amaç:
Öğrenci hem ortalaması düşük hem de devamsızlığı fazlaysa kalır.

🎨 Form Elemanları:

  • txtOrtalama (TextBox)
  • txtDevamsizlik (TextBox)
  • btnDurum (Button)
  • lblDurum (Label)

💻 Kod:

private void btnDurum_Click(object sender, EventArgs e)
{
    if (double.TryParse(txtOrtalama.Text, out double ort) &&
        int.TryParse(txtDevamsizlik.Text, out int dev))
    {
        if (ort < 50 && dev > 10)
            lblDurum.Text = "Kaldı (Not düşük ve devamsızlık fazla)";
        else
            lblDurum.Text = "Geçti veya durum değerlendirilmeye alınabilir.";
    }
    else
    {
        MessageBox.Show("Geçerli değerler giriniz.");
    }
}

📝 Açıklama:
Bu örnek, birden fazla koşulun aynı anda sağlanmasına dayalı değerlendirme içerir. Gerçek hayata çok uygundur.


✅ Özet:

Bu örneklerle öğrenciler artık:

  • Birden fazla koşulu değerlendirebilir
  • &&, || ve ! operatörlerinin farkını anlayabilir
  • Şartlara bağlı olarak uygulamanın yönünü değiştirebilir

Leave a Reply