Menu
Coddy logo textTech

논리 연산자 파트 3

Coddy C++ 여정의 기초 섹션에 포함된 레슨. 74개 중 26번째.

여러 조건을 확인할 때 컴퓨터는 최종 답을 알게 되는 즉시 확인을 중단합니다(이를 단락 평가라고 합니다).

예를 들어:

int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2;

여기서 x0과 같으므로 y / x > 2를 평가하지 않습니다. 순서를 반대로 하면 다음과 같습니다.

bool result = y / x > 2 && x != 0;

y가 0으로 나뉘게 되며 이는 수학에서 허용되지 않기 때문에 오류가 발생합니다.

이 기법은 논리 표현식의 평가를 최적화하는 데 사용됩니다. 예를 들어:

int a = 0;
int b = 2;
int c = 3;
int d = 5;
bool result = (a > 0 && b < 2) || (c < -5 && d < 10);

이 예제에서는 b < 2d < 10이 평가되지 않습니다. a > 0c < -5가 모두 거짓이기 때문입니다.

challenge icon

챌린지

초급

태양광 패널 에너지 생산에 좋은 날인지 판단하는 프로그램을 만드세요

다음 변수를 Initialize하세요:

  • isSunny의 값은 true
  • windSpeed의 값은 5.4
  • temperature의 값은 23
  • solarPanelOutput의 값은 9
  • isCloudy의 값은 false

다음 conditions을 모두 확인하는 하나의 logical expression을 만드세요:

  • 맑습니다
  • wind speed가 10보다 less합니다
  • solar panel output이 15보다 less합니다
  • temperature가 20보다 높거나 clouds가 없습니다

직접 해보기

#include <iostream>

int main() {
    // 변수 초기화
    // 아래의 각 플레이스홀더 값을 작업에서 요청하는 값으로 바꾸세요
    bool isSunny = false;
    double windSpeed = 0.0;
    int temperature = 0;
    int solarPanelOutput = 0;
    bool isCloudy = false;

    // 완전한 논리 표현식
    // 아래의 플레이스홀더를 네 가지 조건을 모두 결합한 하나의 표현식으로 바꾸세요
    bool result = false;

    // 결과 출력
    std::cout << "1. Is it sunny? " << std::boolalpha << isSunny << std::endl;
    std::cout << "2. Is wind speed safe? " << (windSpeed < 10) << std::endl;
    std::cout << "3. Do panels produce less? " << (solarPanelOutput < 15) << std::endl;
    std::cout << "4. Is temperature good OR no clouds? " << (temperature > 20 || !isCloudy) << std::endl;
    std::cout << "5. Final result: " << result << std::endl;

    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨

직접 연습해 보세요: 온라인 C++ 컴파일러