[C++] 논리연산자

Programming/C++_C#|2017. 3. 24. 10:50
반응형

c++에서 논리연산자는 기초 중에 기초이고 

그냥 일상생활 말하듯이 써야되기 때문에 정확히 아는것이 중요하다.

논리연산자나 다른 연사자를 쓸 때 연산자 우선순위라는 것도 있긴한데 그건 ( )을 써줘서 구분해주는것이 좋다.





논리연산자


논리연산자를 검색하면 논리식을 구성하는 요소라고 나온다.

또는, 그리고, 반대의 3가지가 있다.





OR


- 또는 이라는 뜻이고 수학 합집합으로 쓰인다.

- || 기호, |(쉬프트\키) 2개 

- 둘 중 하나만 맞아도 true리턴(2가지 조건 다 맞아도).

- 예를 들면 나의 키는 160이거나 머리는 노랑색이다.라는 말에서

  머리가 노랑색이거나(O) 160이 아니여도(X) -> true이다.


예)


int a = 10;

int b = 20;


if( ( a == 10 ) || ( b == 15 ) )

{

     printf("a == 10에서 true가 리턴이 돼 출력됨")

}






AND


- 그리고 라는 뜻이고 수학에서는 교집합으로 쓰인다.

- && 기호

- 둘 다 맞아야 true리턴(한가지만 맞으면 false).

- 예를 들면 나의 키는 160이거나 머리는 노랑색이다.라는 말에서

  머리가 노랑색이거나(O) 160이 아니여도(X) -> false이다.

  머리가 노랑색인고(O) 160이면(O) -> true이다.


예)


int a = 10;

int b = 20;


if( ( a == 10 ) && ( b == 20 ) )

{

     printf("a == 10이고 b== 20도 맞으니 true가 리턴이 돼 출력됨")






NOT


- 부정(반대)뜻이고 수학에서는 ~으로 쓰인다.

- ! 기호

- 반대의 뜻으로 나타냄.


예)


vector<int> vetTest;

vetTest.push_back(10);


if( !vecTest.empty() )

{

     printf("vecTest.empty()가 아니므로(!) 출력됨")

}


위에 vecTest.empty() 함수는 벡터에 아무것도 없을 때 true를 반환함.

근데 vecTest에는 10을 하나 넣었으니 empty가 아니다 -> 비어있지 않다.

그러므로 vecTest.empty가 아닌것(!)은 true 리턴이니까 아래 조건식에 들어옴.







반응형

'Programming > C++_C#' 카테고리의 다른 글

[C++] 동적배열  (0) 2017.03.30
[C++] new delete 할당과 해제  (0) 2017.03.30
memcpy함수  (0) 2017.03.23
[C++] 문자열 대문자를 소문자로, 소문자를 대문자로  (0) 2017.03.20
[C++] 비트 단위 논리 연산자  (0) 2017.03.16

댓글()