C++ 관계 연산자 & 논리 연산자 마스터하기: 의사결정을 위한 명확한 가이드
C++에서 관계 연산자와 논리 연산자는 두 개 이상의 피연산자를 비교하여 true 또는 false 값을 반환합니다.
이 연산자들은 의사결정에 사용됩니다.
C++ 관계 연산자
관계 연산자는 두 피연산자 간의 관계를 확인하는 데 사용됩니다. 예를 들어,
// a가 b보다 큰지 확인 a > b;
여기서 >는 관계 연산자입니다. a가 b보다 큰지 확인합니다.
관계가 true이면 1을 반환하고, false이면 0을 반환합니다.
다음 표는 C++에서 사용되는 관계 연산자를 요약한 것입니다.
| 연산자 | 의미 | 예시 |
== | 같음 | 3 == 5는 false |
!= | 다름 | 3 != 5는 true |
> | 보다 큼 | 3 > 5는 false |
< | 보다 작음 | 3 < 5는 true |
>= | 크거나 같음 | 3 >= 5는 false |
<= | 작거나 같음 | 3 <= 5는 true |
== 연산자
같음 == 연산자는 다음을 반환합니다: | true - 두 피연산자가 같거나 동일한 경우 false - 피연산자가 다른 경우
예시:
int x = 10; int y = 15; int z = 10; x == y // false x == z // true
참고: 관계 연산자 ==은 대입 연산자 =와 다릅니다. 대입 연산자 =는 변수, 상수, 배열, 벡터에 값을 할당합니다. 두 피연산자를 비교하지 않습니다.
!= 연산자
다름 != 연산자는 다음을 반환합니다:
true - 두 피연산자가 다른 경우 false - 두 피연산자가 같은 경우
예시:
int x = 10; int y = 15; int z = 10; x != y // true x != z // false
> 연산자
보다 큼 > 연산자는 다음을 반환합니다:
true - 왼쪽 피연산자가 오른쪽보다 큰 경우 false - 왼쪽 피연산자가 오른쪽보다 작은 경우
예시:
int x = 10; int y = 15; x > y // false y > x // true
< 연산자
보다 작음 연산자 <는 다음을 반환합니다:
true - 왼쪽 피연산자가 오른쪽보다 작은 경우 false - 왼쪽 피연산자가 오른쪽보다 큰 경우
예시:
int x = 10; int y = 15; x < y // true y < x // false
>= 연산자
크거나 같음 >= 연산자는 다음을 반환합니다:
true - 왼쪽 피연산자가 오른쪽보다 크거나 같은 경우 false - 왼쪽 피연산자가 오른쪽보다 작은 경우
예시:
int x = 10; int y = 15; int z = 10; x >= y // false y >= x // true z >= x // true
<= 연산자
작거나 같음 연산자 <=는 다음을 반환합니다:
true - 왼쪽 피연산자가 오른쪽보다 작거나 같은 경우 false - 왼쪽 피연산자가 오른쪽보다 큰 경우
예시:
int x = 10; int y = 15; x <= y // true y <= x // false
관계 연산자가 문자열과 어떻게 사용되는지 알아보려면 여기를 참조하세요.
C++ 논리 연산자
논리 연산자는 표현식이 true인지 false인지 확인하는 데 사용됩니다. 표현식이 true이면 1을, false이면 0을 반환합니다.
| 연산자 | 예시 | 의미 |
&& | 표현식1 && 표현식2 | 논리 AND. 모든 피연산자가 true일 때만 true |
|| | 표현식1 || 표현식2 | 논리 OR. 하나 이상의 피연산자가 true이면 true |
! | !표현식 | 논리 NOT. 피연산자가 false일 때만 true |
C++ 논리 AND 연산자
논리 AND 연산자 &&는 다음을 반환합니다:
true - 모든 피연산자가 true인 경우에만 false - 하나 이상의 피연산자가 false인 경우
&& 연산자 진리표
a와 b를 두 피연산자라고 하자. 0은 false, 1은 true를 나타냅니다. 그러면,
| a | b | a && b |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
위 진리표에서 볼 수 있듯이 && 연산자는 a와 b가 모두 true일 때만 true를 반환합니다.
참고: 논리 AND 연산자 &&는 비트 AND 연산자 &와 혼동하지 마세요.
예제 1: C++ AND 연산자
// C++ 프로그램: && 연산자 진리표 시연 #include <iostream> using namespace std; int main() { int a = 5; int b = 9; // false && false = false cout << ((a == 0) && (a > b)) << endl; // false && true = false cout << ((a == 0) && (a < b)) << endl; // true && false = false cout << ((a == 5) && (a > b)) << endl; // true && true = true cout << ((a == 5) && (a < b)) << endl; return 0; }
출력
0 0 0 1
이 프로그램에서 int 변수 a와 b를 각각 5와 9로 선언 및 초기화합니다. 그런 다음 논리 표현식을 출력합니다:
((a == 0) && (a > b))
여기서 a == 0은 a의 값이 5이므로 false로 평가됩니다. a > b도 a의 값이 b보다 작으므로 false입니다. 이 두 표현식을 AND 연산자 &&로 결합합니다.
&& 연산자의 진리표에서 알 수 있듯 false && false(즉 0 && 0)는 false(0)로 평가됩니다. 이것이 출력 결과입니다.
마찬가지로 && 연산자의 진리표를 완전히 시연하는 세 가지 다른 표현식을 평가합니다.
C++ 논리 OR 연산자
논리 OR 연산자 ||는 다음을 반환합니다:
true - 하나 이상의 피연산자가 true인 경우 false - 모든 피연산자가 false인 경우에만
|| 연산자 진리표
a와 b를 두 피연산자라고 하자. 그러면,
| a | b | a || b |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
위 진리표에서 볼 수 있듯이 || 연산자는 a와 b가 모두 false일 때만 false를 반환합니다.
예제 2: C++ OR 연산자
// C++ 프로그램: || 연산자 진리표 시연 #include <iostream> using namespace std; int main() { int a = 5; int b = 9; // false || false = false cout << ((a == 0) || (a > b)) << endl; // false || true = true cout << ((a == 0) || (a < b)) << endl; // true || false = true cout << ((a == 5) || (a > b)) << endl; // true || true = true cout << ((a == 5) || (a < b)) << endl; return 0; }
출력
0 1 1 1
이 프로그램에서 int 변수 a와 b를 각각 5와 9로 선언 및 초기화합니다. 그런 다음 논리 표현식을 출력합니다:
((a == 0) || (a > b))
여기서 a == 0은 a의 값이 5이므로 false로 평가됩니다. a > b도 a의 값이 b보다 작으므로 false입니다. 이 두 표현식을 OR 연산자 ||로 결합합니다.
|| 연산자의 진리표에서 알 수 있듯 false || false(즉 0 || 0)는 false(0)로 평가됩니다. 이것이 출력 결과입니다.
마찬가지로 || 연산자의 진리표를 완전히 시연하는 세 가지 다른 표현식을 평가합니다.
C++ 논리 NOT 연산자 !
논리 NOT 연산자 !는 단항 연산자 즉, 피연산자를 하나만 받습니다.
피연산자가 false이면 true를, 피연산자가 true이면 false를 반환합니다.
! 연산자 진리표
a를 피연산자라고 하자. 그러면,
예제 3: C++ NOT 연산자
// C++ 프로그램: ! 연산자 진리표 시연 #include <iostream> using namespace std; int main() { int a = 5; // !false = true cout << !(a == 0) << endl; // !true = false cout << !(a == 5) << endl; return 0; }
출력
1 0
이 프로그램에서 int 변수 a를 값 5로 선언 및 초기화합니다. 그런 다음 논리 표현식을 출력합니다:
!(a == 0)
여기서 a == 0은 a의 값이 5이므로 false로 평가됩니다. 그러나 a == 0에 NOT 연산자 !를 사용합니다. a == 0이 false로 평가되므로 ! 연산자는 a == 0의 결과를 반전시켜 최종 결과는 true가 됩니다.
마찬가지로 표현식 !(a == 5)는 a == 5가 true이므로 최종적으로 false를 반환합니다.