Programing/C++
[C++ 프로그래밍] 논리 연산자
유니얼
2024. 7. 7. 22:18
728x90
C++ 기초 프로그래밍: 논리 연산자
C++ 프로그래밍에서 논리 연산자는 불리언 값의 논리적 관계를 표현하는 데 사용됩니다. 논리 연산자는 주로 조건문이나 반복문에서 사용되며, 프로그램의 흐름을 제어하는 데 중요한 역할을 합니다. 이번 블로그 글에서는 C++의 논리 연산자에 대해 알아보고, 이를 활용하는 방법을 예제와 함께 살펴보겠습니다.
논리 연산자
C++에서는 다음과 같은 논리 연산자를 제공합니다:
- AND 연산자 (&&): 모든 피연산자가 true일 때만 true를 반환합니다.
- OR 연산자 (||): 적어도 하나의 피연산자가 true이면 true를 반환합니다.
- NOT 연산자 (!): 피연산자의 값을 반전시킵니다. true는 false로, false는 true로 변환합니다.
예제 코드
다음 예제 코드는 논리 연산자를 사용하여 불리언 값과 정수 값을 비교하는 방법을 보여줍니다:
#include <iostream>
int main() {
// 불리언 변수 선언 및 초기화
bool a {true};
bool b {false};
bool c {true};
// 불리언 값을 true/false로 출력하도록 설정
std::cout << std::boolalpha;
std::cout << "a : " << a << std::endl;
std::cout << "b : " << b << std::endl;
std::cout << "c : " << c << std::endl;
// AND 연산: 모든 피연산자가 true일 때만 true
std::cout << std::endl;
std::cout << "Basic AND operations" << std::endl;
std::cout << "a && b : " << (a && b) << std::endl; // false
std::cout << "a && c : " << (a && c) << std::endl; // true
std::cout << "a && b && c : " << (a && b && c) << std::endl; // false
// OR 연산: 적어도 하나의 피연산자가 true일 때 true
std::cout << std::endl;
std::cout << "Basic OR operations" << std::endl;
std::cout << "a || b : " << (a || b) << std::endl; // true
std::cout << "a || c : " << (a || c) << std::endl; // true
std::cout << "a || b || c : " << (a || b || c) << std::endl; // true
// NOT 연산: 피연산자의 값을 반전
std::cout << std::endl;
std::cout << "Basic NOT operations" << std::endl;
std::cout << "!a : " << !a << std::endl; // false
std::cout << "!b : " << !b << std::endl; // true
std::cout << "!c : " << !c << std::endl; // false
// 논리 연산자 조합
std::cout << std::endl;
std::cout << "Combining logical operators" << std::endl;
std::cout << "!(a && b) || c : " << (!(a && b) || c) << std::endl; // true
// 논리 연산자와 관계 연산자 조합
int d {45};
int e {20};
int f {11};
std::cout << std::endl;
std::cout << "Relational and logic operations on integers" << std::endl;
std::cout << "d : " << d << std::endl;
std::cout << "e : " << e << std::endl;
std::cout << "f : " << f << std::endl;
std::cout << std::endl;
std::cout << "(d > e) && (d > f) : " << ((d > e) && (d > f)) << std::endl; // true
std::cout << "(d == e) || (e <= f) : " << ((d == e) || (e <= f)) << std::endl; // false
std::cout << "(d < e) || (d > f) : " << ((d < e) || (d > f)) << std::endl; // true
std::cout << "(f > e) || (d < f) : " << ((f > e) || (d < f)) << std::endl; // false
std::cout << "(d > f) && (f <= d) : " << ((d > f) && (f <= d)) << std::endl; // true
std::cout << "(d > e) && (d <= f) : " << ((d > e) && (d <= f)) << std::endl; // false
std::cout << "(!a) && (d == e) : " << ((!a) && (d == e)) << std::endl; // false
return 0;
}
출력 결과
위 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다:
a : true
b : false
c : true
Basic AND operations
a && b : false
a && c : true
a && b && c : false
Basic OR operations
a || b : true
a || c : true
a || b || c : true
Basic NOT operations
!a : false
!b : true
!c : false
Combining logical operators
!(a && b) || c : true
Relational and logic operations on integers
d : 45
e : 20
f : 11
(d > e) && (d > f) : true
(d == e) || (e <= f) : false
(d < e) || (d > f) : true
(f > e) || (d < f) : false
(d > f) && (f <= d) : true
(d > e) && (d <= f) : false
(!a) && (d == e) : false
예제 분석
1, AND 연산 (&&):
- a && b: true && false는 false입니다.
- a && c: true && true는 true입니다.
- a && b && c: true && false && true는 false입니다.
2, OR 연산 (||):
- a || b: true || false는 true입니다.
- a || c: true || true는 true입니다.
- a || b || c: true || false || true는 true입니다.
3, NOT 연산 (!):
- !a: !true는 false입니다.
- !b: !false는 true입니다.
- !c: !true는 false입니다.
4, 논리 연산자 조합:
- !(a && b) || c: !(true && false) || true는 true입니다.
5, 논리 연산자와 관계 연산자 조합:
- (d > e) && (d > f): (45 > 20) && (45 > 11)는 true입니다.
- (d == e) || (e <= f): (45 == 20) || (20 <= 11)는 false입니다.
- (d < e) || (d > f): (45 < 20) || (45 > 11)는 true입니다.
- (f > e) || (d < f): (11 > 20) || (45 < 11)는 false입니다.
- (d > f) && (f <= d): (45 > 11) && (11 <= 45)는 true입니다.
- (d > e) && (d <= f): (45 > 20) && (45 <= 11)는 false입니다.
- (!a) && (d == e): (!true) && (45 == 20)는 false입니다.
결론
C++에서 논리 연산자는 프로그램의 흐름을 제어하는 데 중요한 역할을 합니다. 논리 연산자를 사용하여 조건을 평가하고, 조건문이나 반복문에서 다양한 논리적 결합을 표현할 수 있습니다.
반응형