İnfografik
← Ünite 5
Programlama Temelleri

Ünite 5: İlişkisel ve Mantıksal Operatörler ve Şartlı Deyimler

C++ Dilinde Modern Boolean Değerler
Modern C++ sürümlerinde mantıksal doğru ve yanlış durumları sırasıyla 'true' ve 'false' anahtar sözcükleriyle temsil edilirken; eski sürümlerde 0 yanlış, 0 dışındaki tüm sayılar doğru kabul edilmekteydi.
İlişkisel Operatörlerin Öncelik Kuralı
İlişkisel operatörler atama operatöründen (=) daha yüksek önceliğe sahiptir; ancak aritmetik operatörler (+, -, *, /) ilişkisel operatörlerden daha yüksek işlem önceliğine sahiptir.
Kısa Devre Değerlendirmenin Yan Etkisi
Mantıksal VEYA (||) ifadesinde ilk koşul doğru olduğunda ikinci koşul değerlendirilmez. Bu durum 'b++' gibi artırma işlemlerinin çalışmamasına ve beklenmeyen mantıksal hatalara yol açabilir.
Karakterlerin Sayısal Karşılıkları
C++ dilinde 'a' gibi char türündeki karakterlerin karakter kod sistemindeki tam sayı karşılığını görmek için static_cast<int>('a') dönüştürme ifadesi kullanılabilir.

Anahtar Kavramlar

Atama OperatörüSağ tarafındaki değeri veya ifade sonucunu sol taraftaki değişkene aktaran (=) simgesidir. Örneğin 'int x = 5;' ifadesinde 5 değerini x değişkenine atar.
Eşittir Operatörüİki değerin veya değişkenin birbirine eşit olup olmadığını denetleyen (==) operatörüdür. Eşitse true, değilse false mantıksal değeri döndürür.
Eşit Değildir OperatörüKarşılaştırılan iki değerin birbirinden farklı olup olmadığını kontrol eden (!=) operatörüdür. Değerler farklıysa true, aynıysa false üretir.
Bool Veri TipiC++ dilinde mantıksal değerleri tutan veri tipidir. Modern C++ sürümlerinde 'true' ve 'false' anahtar sözcükleriyle ifade edilir.
İlişkisel Operatörlerİki sayı veya değişken arasındaki büyüklük ve küçüklük ilişkilerini karşılaştıran >, >=, <, <= gibi operatörlerin genel adıdır.
Mantıksal VE OperatörüBirden fazla koşulun tümünün doğru olması durumunda true üreten (&&) mantıksal operatördür. Koşullardan biri bile yanlışsa sonuç false olur.
Mantıksal VEYA OperatörüBağlandığı koşullardan en az birinin doğru olması durumunda true üreten (||) operatördür. Yalnızca tüm koşullar yanlışsa false döner.
Kısa Devre DeğerlendirmeMantıksal ifadelerde sonucun baştan belli olması durumunda gereksiz koşulların değerlendirilmemesini sağlayan performans optimizasyon yöntemidir.
Şartlı Operatörif-else yapısının tek satırda kısaca yazılmasını sağlayan ?: üçlü (ternary) operatördür. Koşula göre iki alternatiften birini seçer.
Switch-Case YapısıBir kontrol ifadesinin aldığı sabit değerlere göre çoklu seçim yapmayı sağlayan, case, break ve default etiketlerinden oluşan kontrol yapısıdır.
Break DeyimiSwitch yapısı içerisinde ilgili case bloğunun sonunu belirten ve programın yapıcıdan çıkmasını sağlayarak sonraki blokların çalışmasını önleyen komuttur.

Diğer Önemli Bilgiler

Switch Yapısında Break İhmali

Switch yapısında break deyimi unutulduğunda veya bilinçli olarak yazılmadığında, eşleşen case bloğundan sonra gelen tüm diğer case ve default blokları da sırayla çalıştırılarak hatalı çıktılar üretilir.

İç İçe If Yapılarında Else Eşleşmesi

C++ programlama dilinde bir else ifadesi, kod içerisindeki girintilere bakılmaksızın, kendisinden hemen önce gelen ve henüz bir else ile eşleşmemiş en yakın if ifadesiyle eşleştirilir.

Default Etiketinin Konumu ve Zorunluluğu

Switch-case yapılarında default etiketi syntax açısından zorunlu değildir; ancak geçersiz veya beklenmeyen girdilerin güvenli bir şekilde yönetilebilmesi için eklenmesi şiddetle tavsiye edilir.

Şartlı Operatör Simgeleri

C++ dilinde if-else alternatifini tek satıra indiren şartlı operatör soru işareti (?) ve iki nokta üst üste (:) sembollerinin birlikte kullanılmasıyla oluşturulur.

Sınavda Dikkat Et

  • Atama operatörü (=) ile eşitlik operatörünü (==) birbirine karıştırmayın; sınavda atama işlemini kontrol eden tuzak kodlar sıkça sorulur.
  • Mantıksal VE (&&) tablosunda tüm koşulların doğru olması gerektiğini, VEYA (||) tablosunda ise tek bir doğruğun yeteceğini unutmayın.
  • Kısa devre değerlendirme (short-circuit) kurallarını iyi kavrayın; VEYA işleminde ilk koşul true ise ikinci koşul çalıştırılmaz.
  • Switch-case yapılarında break komutunun unutulmasının tüm alt blokların çalışmasına neden olan hatalı akışa yol açacağını unutmayın.
  • İç içe if yapılsında else ifadesinin her zaman en yakın eşleşmemiş if ile bağlandığı kuralına dikkat edin.
  • Aritmetik operatörlerin ilişkisel operatörlerden, ilişkisel operatörlerin ise mantıksal ve atama operatörlerinden daha yüksek önceliğe sahip olduğunu ezberleyin.
  • Şartlı operatörün (?:) sol tarafının koşul, orta kısmının doğru durumu, sağ kısmının ise yanlış durumu temsil ettiğini unutmayın.