논리 연산자 Part 3
Coddy C# 여정의 기초 섹션에 포함된 레슨. 69개 중 24번째.
여러 conditions를 확인할 때, 컴퓨터는 최종 답을 아는 즉시 검사를 중단합니다(이를 단락 평가, short-circuit evaluation이라고 합니다).
예를 들어:
int x = 0;
int y = 5;
bool result = x != 0 && y / x > 2;여기서 x는 0과 같으므로, 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);이 예제에서는 a > 0 및 c < -5가 모두 거짓이므로 b < 2와 d < 10은 평가되지 않습니다.
챌린지
초급태양광 패널 에너지 생산에 좋은 날인지 판단하는 프로그램을 만들어 봅시다.
다음 변수들을 초기화하세요:
isSunny: truewindSpeed: 5.4temperature: 23solarPanelOutput: 9isCloudy: false
다음 모든 조건을 확인하는 하나의 논리식을 작성하세요:
- 날씨가 맑음 (sunny)
- 풍속 (wind speed)이 10 미만임
- 태양광 패널 출력 (solar panel output)이 15 미만임
- 온도가 20 초과이거나 또는 구름이 없음
직접 해보기
using System;
public class Program {
public static void Main(string[] args) {
// 변수 초기화
// 각 플레이스홀더 값을 작업에서 설명하는 값으로 바꾸세요
bool isSunny = false;
double windSpeed = 0.0;
int temperature = 0;
int solarPanelOutput = 0;
bool isCloudy = true;
// 완전한 논리 표현식
// 아래 플레이스홀더를 작업에서 설명하는 표현식으로 바꾸세요
bool result = false;
// 아래 줄들을 삭제하지 마세요
Console.WriteLine("Checking conditions for solar energy production...");
Console.WriteLine("1. Is it sunny? " + isSunny);
Console.WriteLine("2. Is wind speed safe? " + (windSpeed < 10));
Console.WriteLine("3. Can panels produce more? " + (solarPanelOutput < 15));
Console.WriteLine("4. Is temperature good OR no clouds? " + (temperature > 20 || !isCloudy));
Console.WriteLine("\nFinal result - Good day for solar energy production: " + result);
}
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C# 컴파일러