ISSAC.Min

[C++ Basic] 연산자(Operator) / 논리 연산자(Logic Operator) 본문

Programming Language/C++ Basic

[C++ Basic] 연산자(Operator) / 논리 연산자(Logic Operator)

ISSAC.M 2019. 4. 5. 16:03
반응형

 1. 논리 연산자(Logic Operator)


논리 연산자(Logic Operator)은 앞에서 보았던 관계 연산자(Relational Operator) 두가지의 명제를 논리적으로 확인하고 논리가 맞다면 True(참, 1), 틀렸다면 False(거짓, 0)을 반환한다. 하지만 논리의 필요상 여러가지의 명제들을 비교해야할 일이 많이 발생한다. 그럴 때 사용하는 것이 바로 논리 연산자(Logic Operator)입니다. 

여기서 논리 연산자는 논리곱(And, 그리고), 논리합(Or, 또는) 을 통하여 여러가지 명제의 관계를 확인 가능하게 만드는 연산자이다. 논리 연산자는 관계 연산자와 같이 조건문을 통하여 명제를 테스트 하는 용도로 많이 사용되는데 아래와 같다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
 
using namespace std;
 
int main(){
    int num1 = 1;
    int num2 = 5;
    int num3;
    
    cout << "num1 : " << num1 << endl;
    cout << "num2 : " << num2 << endl;
    cout << "num3 : ";
    cin >> num3;
 
    // num1 < num3 < num3
    if(num3 < num1 && num3 > num2){
    cout << "num3는 num1과 num2의 사이에 존재합니다." << endl;
    }
    // num3 < num1 , num1 < num2     
    else if(num3 < num1 && num2 < num3){
    cout << "num3는 num1보다 작고 num2보다 큽니다."
    }
    // num3 = num1 < num2
    else if(num1 == num3 && num3 < num2){
    cout << "num3는 num1과 같습니다." << endl;
    }
    // num1 < num3 = num2
    else{
    cout << "num3는 num2와 같습니다." << endl;
    }
    return 0;
}
cs

<논리곱(&&) 예시>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main (){ 
    int num1 = 10;
        
    if(num1 == 9 && num1 == 10){
    cout << "false / 0" << endl;
    }
 
    if(num1 == 9 || num1 == 10){
    cout << "true / 1" << endl;
    }
 
    return 0;       
}
cs

<논리합(||) 예시>


위의 예시에서 논리 부정 연산자를 나타내지 않았는데 논리 부정 연산자인 !는 bool 논리 자료형에 붙여서 사용할 수 있는데 아래와 같이 환값이 true였다면 false, false였다면 true 값으로 반전된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
using namespace std;
 
int main (){ 
    int num1 = 10;
    int num2 = 9;
    bool result = (num1 == num2);    
    // 논리 부정 연산자 미사용시
    cout << result << endl;            // false / 0
    // 논리 부정 연산자 사용시
    cout << !result << endl;           // true / 1
    return 0;       
}
cs

<논리 부정 연산자(!) 예시>

 2. 논리 연산자의 진리표

 x1

x2 

x1 && x2 

x1 || x2 

 !x1

false

true

false 

false 

true 

false

false

false 

true 

true 

 true

false 

false

true 

false 

 true

true 

true 

true 

 false


 3. 실습


반응형