Aşağıdaki tabloda C’deki mantıksal operatörler listeleniyor:
Operatör |
Sembol |
Kullanılışı |
İşlem sonucu |
---|---|---|---|
Mantıksal AND |
&& |
a && b |
a ve b’nin her ikisi sıfırdan farklı ise sonuç 1 aksi takdirde 0 |
Mantıksal OR |
|| |
a || b |
a veya b’den biri sıfırdan farklı ise sonuç 1 aksi takdirde sonuç 0 |
Mantıksal değil |
! |
! a |
a sıfırsa sonuç 1 aksi takdirde sonuç 0 |
Matematiksel olarak a < b < c şeklinde ifade edilebilen bir özellik, C’de aynı şekilde yazılırsa, önceliklerden dolayı ( a < b ) < c şeklinde yorumlanarak sonuç bulur. Önce a < b kontrolü yapılır, a < b ise 1 sonucu bulunarak 1 < c mukayesesi yapılır. Biz ilk ifadede olduğu gibi, b’nin a ile c arasında olup olmadığını kontrol etmek istiyorsak, ifadeyi a < b && b < c şeklinde yazmalıyız. Böylece a < b ve b < c karşılaştırmalarının her ikisi de doğru iken sonuç doğru alınır yani b’nin a ile c arasında olduğu (ya da tersi durumun söz konusu olduğu) anlaşılır. Aşağıdaki tablo mantıksal AND (&&) ve mantıksal OR(″) operatörleri ve değil operatörü (!) için mümkün olaan durumları veriyor:
Mantıksal AND
Operand 1 |
Operatör |
Operand 2 |
Sonuç |
---|---|---|---|
0 |
&& |
Sıfırdan farklı |
0 |
Sıfırdan farklı |
&& |
0 |
0 |
0 |
&& |
0 |
0 |
Sıfırdan farklı |
&& |
Sıfırdan farklı |
1 |
Mantıksal OR
Operand 1 |
Operatör |
Operand 2 |
Sonuç |
---|---|---|---|
0 |
|| |
Sıfırdan farklı |
1 |
Sıfırdan farklı |
|| |
0 |
1 |
0 |
|| |
0 |
0 |
Sıfırdan farklı |
|| |
Sıfırdan farklı |
1 |
Değil Sembolü
Operatör |
Operand |
Sonuç |
---|---|---|
! |
Sıfırdan farklı |
0 |
! |
0 |
1 |
Aşağıdaki programda, mantıksal AND, OR ve değil ile ilgili ifadeler kullanıldı.
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
int m=4, n=0, p=-2;
float x=4.5, y=2.2, z=3.4;
NSLog(@ " \np < 4 && n = % i \n", p < 4 && n);
NSLog(@"\n (x < y) - ! p || m ++ =% i\n", (x < y) - ! p || m ++);
NSLog(@ "\n p <= 8 &&y >= 2 && !n ||1 =%i \n", (p <= 8 && y >=2 && !n) ||1);
NSLog(@"\n(3 * m - !n)* 2&& x - y ||z + y =%i\n\n", ((3 * m - !n)* 2&& x - y) ||z + y);
return 0;
}
PROGRAMIN ÇIKTISI:
AÇIKLAMA:
1)
p < 4 &&n
–2 < 4&& 0
1&&0
SONUÇ: 0
2)
(x <y) – !p || m++
(4.5 < 2.2) – !(–2) || 4++
0 – !(-2) || 4++
0 – 0 || 4++
0 || 4++
SONUÇ: 1
3)
p < = 8 && y > = 2 && !n ||1
–2 < = 8 && 2.2 > = 2 && ! 0 ||1
–2 < = 8 && 2.2 > = 2 && 1|| 1
1 && 1 && 1 || 1
1 && 1 ||1
1 || 1
SONUÇ:1
4)
(3 * m – !n) * 2 && x – y || z + y
(3 * 4 – ! 0) * && 4.5 – 2.2 ||3.4 + 2.2
(3 * 4 – 1) * 2 && 4.5 – 2.2 || 3.4 + 2.2
11 * 2 && 4.5 – 2.2 || 3.4 + 2.2
22 && 2.3 || 5.6
1 || 5.6
1 || 1
SONUÇ: 1