논리연산자는 3개다. &&, ||, !
논리연산자를 사용할때 항상 True와 False를 아용해 연산을 한다.
#include <stdio.h>
void main()
{
// 논리연산자
int num1 = 10;
int num2 = 5;
int num3 = 20;
bool isTrue = false;
isTrue = (num1 > num2) && (num1 < num3); // 10 > 5 && 5 < 20
printf("%d\n", isTrue);
isTrue = (num1 < num2) && (num1 < num3); // 10 < 5 && 5 < 20
printf("%d\n", isTrue);
isTrue = (num1 < num2) || (num1 < num3); // 10 < 5 || 5 < 20
printf("%d\n", isTrue);
isTrue = (num1 < num2) || (num2 > num3); // 10 < 5 || 5 > 20
printf("%d\n", isTrue);
isTrue = !((num1 < num2) || (num2 > num3)); // !(10 < 5 || 5 > 20)
printf("%d\n", isTrue);
printf("%d\n", !isTrue);
getchar();
}
순서대로 살펴보면
1. 좌항 : true, 우항 : true --> true(1) 반환
2. 좌항 : false, 우항 : true --> false(0) 반환
3. 좌항 : false, 우항 : true --> true(1) 반환
4. 좌항 : false, 우항 : false --> false(0) 반환
5. 좌항 : false, 우항 : false --> false(0) 하지만 !을 붙이기 때문에 반대가 되는 true(1)를 반환
마지막 출력문을 현재 isTrue변수의 값이 true이기 때문에 !isTrue를 출력하면 반대되는 false(0)을 출력한다.