Menu
CoddyTech

논리 연산자 파트 3

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

여러 조건을 확인할 때 프로그램은 최종 답을 알게 되는 즉시 확인을 멈춥니다. 이를 단락 평가라고 합니다.

예를 들면:

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

여기서 x는 0이므로 y / x > 2를 평가하지 않습니다. 순서를 뒤집으면:

int result = (y / x > 2) && (x != 0);

C에서 y를 0으로 나누게 되어 정의되지 않으므로 오류가 발생합니다. 따라서 연산을 충분히 생각해 보고 올바르고 효율적이며 오류가 없는 코드를 작성하는 것이 좋습니다.

이 기법은 논리식의 평가를 최적화하는 데 사용됩니다. 예를 들면 다음과 같습니다.

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

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

challenge icon

챌린지

쉬움

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

다음 변수를 초기화하세요:

  • isSunny의 값을 1(true)로 설정
  • windSpeed의 값을 5.4로 설정
  • temperature의 값을 23으로 설정
  • solarPanelOutput의 값을 9로 설정
  • isCloudy의 값을 0(false)으로 설정

다음 조건을 모두 확인하는 논리식을 하나 만드세요:

  • 날씨가 맑음
  • 풍속이 10보다 낮음
  • 태양광 패널 출력이 15보다 낮음
  • 기온이 20보다 높음 또는 구름이 없음

모든 조건이 충족되면 "Good day for solar energy"을 출력하고, 그렇지 않으면 "Not ideal for solar energy"를 출력하세요.

직접 해보기

#include <stdio.h>

int main() {
    // 변수를 초기화하세요
    int isSunny = 1;
    float windSpeed = 5.4;
    int temperature = 23;
    int solarPanelOutput = 9;
    int isCloudy = 0;
    
    // 논리식을 작성하세요
    int isGoodDay = 
    
    // 아래 코드는 변경하지 마세요
    if (isGoodDay) {
        printf("Good day for solar energy\n");
    } else {
        printf("Not ideal for solar energy\n");
    }
    
    return 0;
}
quiz icon실력 점검

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

기초의 모든 레슨

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