본문 바로가기
공부/개발노트

[C/C++] 논리연산자 AND와 OR 함께 사용하기

반응형

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main(){
    // 키와 시력을 보관할 변수 정의
    int height;
    float eyesight;
    
    height = 175;
    eyesight = 0.8f;
    
    // 조건이 만족하는지 검사 
    bool ok; // 자격을 갖춘 사람인가? 
    ok = height >= 160 && height <= 180 ||
    eyesight >= 1.0f && eyesight <= 2.0f; 
    
    return 0;
}
cs

&& 연산자가 || 연산자보다 우선 순위가 높기 때문에 14~15번째 줄은 다음과 같은 의미를 가진다.

ok = (height >= 160 && height < = 180) || (eyesight >= 1.0f && eyesight <= 2.0f);

해석하자면 "키가 160 이상 180 이하이거나 시력이 1.0 이상 2.0 이하인 경우"이다.

반대 조건인 "키가 160보다 작거나 180보다 크고 시력이 1.0보다 낮거나 2.0보다 높은 경우"로 코드를 적자면

ok = (height <= 160 || height >= 180) && (eyesight <= 1.0f || eyesight >= 2.0f);


반대에 경우에는 괄호가 반드시 필요하다. 안하고 컴파일하게되면 아예 다른 결과가 나와버린다.



반응형