관계 연산자 개요
관계 연산자는 두 값 사이의 관계를 비교하는 데 사용됩니다. C++에서 제공하는 관계 연산자는 다음과 같습니다.
1. 같음 ==
2. 같지 않음 !=
3. 큼 >
4. 작음 <
5. 크거나 같음 >=
6. 작거나 같음 <=
이 연산자들의 결과는 항상 불리언(boolean) 타입인 true
또는 false
입니다.
관계 연산자 상세 설명
같음 연산자 ==
두 값이 같은지 비교합니다.
같지 않음 연산자 !=
두 값이 다른지 비교합니다.
큼 연산자 >
왼쪽 값이 오른쪽 값보다 큰지 비교합니다.
작음 연산자 <
왼쪽 값이 오른쪽 값보다 작은지 비교합니다.
크거나 같음 연산자 >=
왼쪽 값이 오른쪽 값보다 크거나 같은지 비교합니다.
작거나 같음 연산자 <=
왼쪽 값이 오른쪽 값보다 작거나 같은지 비교합니다.
논리 연산자 개요
논리 연산자는 불리언 값들을 조합하거나 반전시키는 데 사용됩니다. C++에서 제공하는 논리 연산자는 다음과 같습니다.
1. AND &&
2. OR ||
3. NOT !
논리 연산자 상세 설명
AND 연산자 &&
두 조건이 모두 참일 때 참을 반환합니다.
OR 연산자 ||
두 조건 중 하나라도 참이면 참을 반환합니다.
NOT 연산자 !
불리언 값을 반전시킵니다.
단축 평가 (Short-circuit Evaluation)
논리 연산자의 중요한 특성 중 하나는 단축 평가입니다.
이는 논리 연산의 결과가 첫 번째 피연산자만으로 결정될 수 있을 때, 두 번째 피연산자를 평가하지 않는 것을 말합니다.
- AND
&&
연산에서 첫 번째 조건이 거짓이면, 두 번째 조건은 평가하지 않습니다.
- OR
||
연산에서 첫 번째 조건이 참이면, 두 번째 조건은 평가하지 않습니다.
연산자 우선순위
관계 연산자와 논리 연산자의 우선순위는 다음과 같습니다.
- NOT
!
- 관계 연산자
<
, >
, <=
, >=
, ==
, !=
- AND
&&
- OR
||
주의사항
- 부동소수점 비교 : 부동소수점 숫자를 비교할 때는 정확한 값 비교보다는 오차 범위를 고려해야 합니다.
- 문자열 비교 : C 스타일 문자열은 == 연산자로 비교할 수 없습니다.
strcmp()
함수를 사용해야 합니다.
- 비교 연산자 체이닝 : C++에서는 a < b < c와 같은 연산이 의도한 대로 동작하지 않을 수 있습니다.
연습 문제
- 사용자로부터 두 수를 입력받아 크기를 비교하는 프로그램을 작성하세요.
- 연도를 입력받아 윤년인지 판단하는 프로그램을 작성하세요. (윤년 : 4로 나누어 떨어지고, 100으로 나누어 떨어지지 않거나 400으로 나누어 떨어지는 해)
- 단락 평가를 이용하여 0으로 나누는 상황을 방지하는 프로그램을 작성하세요.
- 세 개의 정수를 입력받아 가장 큰 수를 출력하는 프로그램을 작성하세요. (if문을 사용하지 않고 관계 연산자와 논리 연산자만 사용하여 구현해보세요)
- 문자열을 입력받아 모음(a, e, i, o, u)의 개수를 세는 프로그램을 작성하세요. (논리 연산자를 활용하여 구현해보세요)
참고자료