논리 연산자
논리 연산자(logical operator)
논리 연산자는 주어진 논리식을 판단하여, 참(true)과 거짓(false)을 결정하는 연산자입니다.
AND 연산과 OR 연산은 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽입니다.
NOT 연산자는 피연산자가 단 하나뿐인 단항 연산자이며, 피연산자의 결합 방향은 오른쪽에서 왼쪽입니다.
논리 연산자 | 설명 |
---|---|
&& | 논리식이 모두 참이면 1을 반환함. (논리 AND 연산) |
|| | 논리식 중에서 하나라도 참이면 1을 반환함. (논리 OR 연산) |
! | 논리식의 결과가 참이면 0을, 거짓이면 1을 반환함. (논리 NOT 연산) |
C언어에서 거짓(false)은 0이며, 0이 아닌 모든 것은 참(true)으로 인식됩니다.
다음은 논리 연산자의 모든 동작의 결과를 보여주는 진리표(truth table)입니다.
A | B | A && B | A || B | !A |
---|---|---|---|---|
1 (true) | 1 (true) | 1 (true) | 1 (true) | 0 (false) |
1 (true) | 0 (false) | 0 (false) | 1 (true) | 0 (false) |
0 (false) | 1 (true) | 0 (false) | 1 (true) | 1 (true) |
0 (false) | 0 (false) | 0 (false) | 0 (false) | 1 (true) |
예제
int num01 = 3;
int num02 = -7;
int result01, result02;
result01 = (num01 > 0) && (num01 < 5);
result02 = (num02 < 0) || (num02 > 10);
printf("&& 연산자에 의한 결괏값은 %d입니다.\n", result01);
printf("|| 연산자에 의한 결괏값은 %d입니다.\n", result02);
printf(" ! 연산자에 의한 결괏값은 %d입니다.\n", !result02);
실행 결과
&& 연산자에 의한 결괏값은 1입니다.
|| 연산자에 의한 결괏값은 1입니다.
! 연산자에 의한 결괏값은 0입니다.
컴퓨터에서 참(true)은 보통 1로 표현되고, 거짓(false)은 0으로 표현됩니다.
하지만 C언어에서는 음수를 포함해 0이 아닌 모든 수가 참(true)으로 취급됩니다.
하지만 C언어에서는 음수를 포함해 0이 아닌 모든 수가 참(true)으로 취급됩니다.