Karşılaştırma Operatörleri

C#’ta toplam 6 tane karşılaştırma operatörü vardır. Bunlar <, >, <=, >=, ==, !=
Bu operatörlerin hepsi iki operantlı ara ek operatörlerdir. Karşılaştırma operatörlerinin ürettiği değerler bool türündendir. Önerme doğruysa true, yanlışsa false değer üretir. Bool türü C#’ta hiçbir türle işleme sokulamaz. Karşılaştırma operatörleri, karşılaştırma tablosunda aritmetik operatörlerden daha az önceliklidir.


Mantıksal Operatörler

C#’ta 3 mantıksal operatör vardır:

! -> NOT
&& -> AND
|| -> OR

|| ve && operatörleri iki operantlı ara ek, ! operatörü ise tek operantlı ön ek operatörlerdir.

Mantıksal operatörlerin operantları bool olmak zorundadır. Mantıksal operatörler öncelik tablosunda, karşılaştırma operatörlerinden daha düşük öncelikli grupta bulunur.

Genellikle mantıksal operatörler, doğrudan değil karşılaştırma operatörleriyle birlikte kullanılır. Örneğin:

Karşılaştırma operatörleri bool değer ürettiği için bu değerler mantıksal operatörlerle doğrudan işleme sokulabilir. && ve || operatörleri klasik öncelik kuralına uymazlar. Bu operatörlerin kısa devre özelliği vardır. Bu operatörlerin önce sol tarafı yapılır. Sağ tarafında ne olursa olsun hiçbir operatörün işlemi yapılmaz. Eğer %% operatöründe sol tarafındaki operatör false ise, || operatöründe true ise sağ taraf hiç yapılmaz.

Burada önce Foo( ) metodu çağrılır. Eğer geri dönüş değeri true ise Bar( ) metodu hiç çağrılmaz. False ise çağrılır.

Eğer iki işleminde yapılması isteniyorsa şu önerilebilir;

&& ve || operatörleri beraber kullanıldığında sol taraftaki operatörün sol tarafı önce yapılır. Aslında programcı, tüm operatörler ve tüm operantlar yapılıyormuş gibi düşünebilir. Çıkan sonuç aynı sonuç olacaktır. Yalnızca bu sonuç çabuk çıkartılmaktadır. Örneğin:

Burada önce Foo( ) yapılır. Foo( ) false ise Bar( ) yapılmaz ancak Tar( ) yapılır. Foo( ) true ise Bar( ) yapılır, Bar( ) ‘da true ise Tar( ) yapılmaz. Örneğin:

Burada önce Foo( ) yapılır. Foo( ) true ise diğer operatörler yapılmaz, sonuç true olarak verilir. Foo( ) false ise Bar( ) yapılır. Bar( ) false ise Tar( ) yapılmaz.
C#’ta ayrıca bit düzeyinde AND işlemi için &, bit düzeyinde OR işlemi içinse | kullanılır. Fakat bu operatörler özel bir durum olarak bool değerlerle de kullanılabilmektedir. Bit operatörleri kısa devre özelliğine sahip değildir. Bu durumda biz C#’ta && operatörünün kısa devre özelliği olmayan bir özelliği olarak & operatörünü, || operatörünün kısa devre özelliği olmayan | operatörünü kullanabiliriz. Örneğin:

Burada önce Bar( ), sonra Tar( ) ve en sonunda Foo( ) işlemi yapılır.

Burada 10 degeri a ya atanmıstır ve atana bu deger aynı zamanda Foo metoduna parametre olarak aktarılmaktadır.
Atama operatörü sağdan sola önceliklidir.

burada önce 10 b’ye atanacak sonra bu deger 20 ile toplanıp a’ ya atanacaktır.

Leave a Reply

Site Footer