Menu
CoddyTech

논리 연산자 3부

Coddy Java 여정의 기초 섹션에 포함된 레슨. 73개 중 25번째.

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

예를 들면:

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

여기서 x는 0과 같으므로 y / x > 2를 평가하지 않습니다. 순서를 바꾼다면 다음과 같습니다:

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

수학에서 허용되지 않는 0으로 y를 나누게 되므로 오류가 발생합니다.

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

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

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

오른쪽 피연산자는 메서드 호출일 수도 있으며, 같은 규칙이 적용됩니다. false && someMethod()에서는 왼쪽이 거짓이면 이미 &&의 결과가 결정되므로 메서드가 호출되지 않습니다. true || anotherMethod()에서도 왼쪽이 참이면 이미 ||의 결과가 결정되므로 메서드가 호출되지 않습니다. 왼쪽만으로 답이 결정되지 않을 때에만 오른쪽 피연산자가 평가됩니다.

challenge icon

챌린지

초급

태양광 패널의 에너지 생산에 좋은 날인지 판단하는 프로그램을 만들어 봅시다

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

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

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

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

직접 해보기

public class Main {
    public static void main(String[] args) {
        // 변수 초기화
        // 아래의 각 자리표시자 값을 과제에서 요구하는 값으로 바꾸세요
        boolean isSunny = false;
        double windSpeed = 0.0;
        int temperature = 0;
        int solarPanelOutput = 0;
        boolean isCloudy = false;

        // 완성된 논리식
        // 아래의 자리표시자를 네 가지 조건을 모두 결합한 하나의 식으로 바꾸세요
        boolean result = false;

        // 아래 줄을 삭제하지 마세요
        System.out.println("Checking conditions for solar energy production...");
        System.out.println("1. Is it sunny? " + isSunny);
        System.out.println("2. Is wind speed safe? " + (windSpeed < 10));
        System.out.println("3. Can panels produce more? " + (solarPanelOutput < 15));
        System.out.println("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
        System.out.println("\nFinal result - Good day for solar energy production: " + result);
    }
}
quiz icon실력 점검

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

기초의 모든 레슨

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