ted0505
Computational Art & Study
ted0505
전체 방문자
오늘
어제
  • 분류 전체보기 (79)
    • Computer Science ( CS ) (0)
    • Computational Thinking (6)
    • 프로젝트 개발일지 (1)
    • Coding (52)
      • C++ (39)
      • JavaScript (2)
      • P5.JS (7)
      • Python (0)
      • HTML5 (1)
      • CSS (0)
    • Game Engine (18)
      • Unreal Engine 4 (18)
      • Unity (0)
    • Physically Based Rendering (0)
    • FilmMaking (0)
    • 잡다 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ted0505

Computational Art & Study

Coding/C++

[ C++ ] 논리 연산자 (Logical Operators)

2022. 1. 23. 11:36

관계 연산자는 조건이 True 인지 false 인지, 한번에 하나의 조건만 테스트 할 수 있다.

하지만, 논리 연산자는 여러 가지의 조건을 True 인지 false 인지 테스트 할 수 있다.

 

C++에는 3가지 Logical Operator가 있다.

Operator Symbol Form
Logical NOT ! !x
Logical OR || x || y
Logical AND && x && y

 

1. Logical NOT 

논리 부정 연산자가 피연산자를 평가하면 True가 false가 되고, false가 True가 된다. 

즉, 부울 값을 반전시킨다.

 

*주의점 : 논리 부정 연산자는 연산자 우선순위가 굉장히 높다.

if ( !x == y ) 
	cout <<  "x does not equal y" << endl;
else
	cout << "x equals y" << endl;
    
    // 출력 값 : "x equals y"

의도를 분명히 하기위해서는 항상 괄호()를 사용하여 우선순위를 정하자.

 

2. Logical OR

여러가지 조건 중 하나가 참(true)인지 테스트하는 연산자다.

int value = 0;

if ( value == 0 || value == 1 ) 
	cout << "You picked 0 or 1" << endl;
else 
	cout << "You did not pick 0 or 1" << endl;

두 가지 조건 중 하나가 참이기 때문에 true를 반환한다.

 

 

3. Logical AND

여러가지 조건 중 모두가 참(true)인지 테스트하는 연산자다.

int value = 0;
int value2 = 1;

if ( value == 0  && value == 0 )
	cout << "is true" << endl;
else 
	cout << "is false" << endl;

두 조건 모두가 참이 아니기 때문에 false를 반환한다.

 

3-1. short circuit evaluation ( 단락 평가 )

AND Operator는 피연산자 모두가 true여야 한다.

만약 첫 피연산자가 false로 평가되면, 두 번째 피연산자와는 상관없이 false를 반환한다. 

그러므로, AND 연산자는 즉시 false를 반환한다. 이 경우를 주로 최적화 목적으로 사용한다고 함.

if ( x == 1 && y++ == 2 ) 
	// do something

첫 피연산자가 false면  y++는 평가하지 않는다. 즉, y++은 첫 피연산자가 참이어야만 수행되므로 주의가 필요하다.

 

'Coding > C++' 카테고리의 다른 글

[ C++ ] 비트 플래그, 비트 마스크 ( bit flag, bit masks )  (0) 2022.01.26
[ C++ ] 비트 단위 연산자 Bitwise Operators  (0) 2022.01.24
[ C++ ] 02.08 상수 constants  (0) 2022.01.18
[ C++ ] 02.05 - 부동 소수점 숫자 ( floating point numbers )  (0) 2022.01.14
[ C++ ] Variable 과 Fundamental Data Type  (0) 2022.01.13
    'Coding/C++' 카테고리의 다른 글
    • [ C++ ] 비트 플래그, 비트 마스크 ( bit flag, bit masks )
    • [ C++ ] 비트 단위 연산자 Bitwise Operators
    • [ C++ ] 02.08 상수 constants
    • [ C++ ] 02.05 - 부동 소수점 숫자 ( floating point numbers )
    ted0505
    ted0505

    티스토리툴바