Logical Operators Part 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;이는 y가 0으로 나누어지기 때문에 오류가 발생합니다. 이는 수학에서 불가능한 연산입니다.
이 기술은 논리 표현식의 평가를 최적화하는 데 사용됩니다. 예를 들어:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
boolean result = (a > 0 && b < 2) || (c < -5 && d < 10);이 예제에서, b < 2와 d < 10은 a > 0과 c < -5가 모두 false이기 때문에 평가되지 않습니다.
챌린지
초급태양광 패널 에너지 생산에 좋은 날인지 판단하는 프로그램을 만들어보자
다음 변수들을 초기화하세요:
isSunny값 true로windSpeed값 5.4로temperature값 23으로solarPanelOutput값 9로isCloudy값 false로
이 모든 조건을 확인하는 하나의 논리 표현식을 만드세요:
- 맑다
- 풍속이 10 미만이다
- 태양광 패널 출력이 15 미만이다
- 온도가 20 초과 또는 구름이 없다
치트 시트
Java는 여러 조건을 확인할 때 단락 평가(short-circuit evaluation)를 사용합니다 - 최종 결과가 결정되는 즉시 평가를 중단합니다.
&& (AND)를 사용하면, 첫 번째 조건이 거짓이면 두 번째 조건은 평가되지 않습니다:
int x = 0;
int y = 5;
boolean result = x != 0 && y / x > 2; // y / x > 2는 평가되지 않습니다|| (OR)를 사용하면, 첫 번째 조건이 참이면 두 번째 조건은 평가되지 않습니다:
int a = 0;
int b = 2;
int c = 3;
int d = 5;
boolean result = (a > 0 && b < 2) || (c < -5 && d < 10);
// b < 2와 d < 10은 평가되지 않습니다이 최적화는 불필요한 계산을 방지하고 0으로 나누기와 같은 런타임 오류를 피할 수 있습니다.
직접 해보기
public class Main {
public static void main(String[] args) {
// 변수 초기화
// 완전한 논리 표현식
boolean result =
// 아래 줄들을 삭제하지 마세요
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);
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else