이이프
IeF 제멋대로 세상
이이프
전체 방문자
오늘
어제

공지사항

  • ✔ Info
  • 전체 글보기 (56)
    • 💻프로그래밍 내용 정리 (55)
      • C (0)
      • C++17 (55)
    • 💻게임메이커 (0)
    • 💻언리얼엔진 (0)
    • 💻유니티 (0)
    • 🎈[팀&자작]게임소개 (0)
    • 📃게임제작기술 (0)
    • 🎨그림놀이 (0)
    • 📒대학생활 (0)
    • 😃잡담 (1)
    • 🕹게임성과 (0)
    • 💷자격증 (0)

블로그 메뉴

  • 방명록

최근 글

최근 댓글

티스토리

hELLO · Designed By 정상우.
이이프

IeF 제멋대로 세상

💻프로그래밍 내용 정리/C++17

[C++ 1.1.8] 논리 연산자(<, <=, >, >=, ==, !=, !, &&, ||), 단락 논리

2022. 8. 15. 20:23
728x90

논리 연산자

if (a > b)에서 > 연산자가 바로 논리 연산자이다.

이 연산자는 두 값을 비교해서 왼쪽 값이 오른쪽 값보다 크면 '참'이란 결과를 낸다.

다른 논리 연산자도 모두 이 패턴에 따라 최종 결과는 true나 false가 된다.

<
<=
>
>=
왼쪽 값이 오른쪽 값보다 작은지(<),
작거나 같은지(<=),
큰지(>),
크거나 같은지(>=) 비교한다.
if (i < 0) {
    std::cout << "i는 음수다.";
}
== 왼쪽 값이 오른쪽 값과 같은지 판단한다 if (i == 3) {
    std::cout << "i는 3이다.";
}
!= 왼쪽 값이 오른쪽 값과 다른지 검사한다. if (i != 3) {
    std::cout << "i는 3이 아니다.";
}
! 부울 표현식의 값(true/false)에 대한 값을 구하는 논리부정(NOT)에 대한 단항 연산자. if (!somejBoolean) {
    std::cout << "someBoolean이 false다.";
}
&& 논리곱(AND)에 대한 연산자로서,
양쪽에 나온 표현식이 모두 true여야 전체 결과가 true가 된다.
if (someBoolean && someOtherBoolean) {
    std:: cout << "둘 다 true다.";
}
|| 논리합(OR)에 대한 연산자로서,
양쪽에 나온 표현식 중에서 어느 하나가 true면 전체가 true다.
if (someBoolean || someOtherBoolean) {
    std::cout << "적어도 하나가 true다.";
}

C++은 논리 표현식을 단락 논리(축약 논리) 방식으로 평가한다.

표현식을 평가하는 도중에 최종 결과가 확정되면 나머지 부분은 평가하지 않는다.

bool result = bool1 || bool2 || (i > 7) || (27 /13 % i + 1) < 2;

여기서 bool1이 true라는 결과 나오면 표현식 전체가 true일 수밖에 없으므로 나머지 부분은 평가하지 않는다.

단락 기능은 프로그램 성능을 높이는데 도움이 된다.

'💻프로그래밍 내용 정리 > C++17' 카테고리의 다른 글

[C++ 1.1.10] C 스타일 배열, 영 초기화, 이니셜라이저 리스트, std::size(), sizeof  (0) 2022.08.15
[C++ 1.1.9] 함수, 함수 선언, 함수 정의, 함수 리턴 타입 추론(auto), 현재 함수 이름(__func__)  (0) 2022.08.15
[C++ 1.1.7] 조건문(if/else/switch), 이니셜라이저, 폴스루(fallthrough), 조건 연산자  (0) 2022.08.15
[C++ 1.1.6] 상수와 타입(enum), 엄격한 타입(enum class(스트롱 타입)), 구조체(struct)  (0) 2022.08.15
[C++ 1.1.5] 연산자(단항, 이항, 비트 연산자)  (0) 2022.08.15
    '💻프로그래밍 내용 정리/C++17' 카테고리의 다른 글
    • [C++ 1.1.10] C 스타일 배열, 영 초기화, 이니셜라이저 리스트, std::size(), sizeof
    • [C++ 1.1.9] 함수, 함수 선언, 함수 정의, 함수 리턴 타입 추론(auto), 현재 함수 이름(__func__)
    • [C++ 1.1.7] 조건문(if/else/switch), 이니셜라이저, 폴스루(fallthrough), 조건 연산자
    • [C++ 1.1.6] 상수와 타입(enum), 엄격한 타입(enum class(스트롱 타입)), 구조체(struct)
    이이프
    이이프
    게임 프로그래머 지망생 / Since 2022.08.14

    티스토리툴바