논리 연산자 파트 3
Coddy C++ 여정의 기초 섹션에 포함된 레슨. 74개 중 26번째.
여러 조건을 확인할 때, 컴퓨터는 최종 답을 알게 되는 즉시 확인을 멈춥니다(이를 단락 평가라고 합니다).
예를 들어:
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;수학에서 허용되지 않는 0으로 y를 나누게 되므로 오류가 발생합니다.
이 기법은 논리식의 평가를 최적화하는 데 사용됩니다. 예를 들어:
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의 값을 true로 설정windSpeed의 값을 5.4로 설정temperature의 값을 23으로 설정solarPanelOutput의 값을 9로 설정isCloudy의 값을 false로 설정
다음 조건을 모두 확인하는 논리식을 하나 만드세요:
- 날씨가 맑습니다
- 풍속이 10보다 낮습니다
- 태양광 패널의 출력이 15보다 낮습니다
- 기온이 20보다 높거나 구름이 없습니다
직접 해보기
#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;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C++ 컴파일러