[C++] 논리연산자
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 |