Menu
CoddyTech

논리 연산자 파트 3

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

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

예를 들면:

let x: i32 = 0;
let y: i32 = 5;
let result: bool = x != 0 && y / x > 2;

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

let result: bool = y / x > 2 && x != 0;

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

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

let a: i32 = 0;
let b: i32 = 2;
let c: i32 = 3;
let d: i32 = 5;
let result: bool = (a > 0 && b < 2) || (c < -5 && d < 10);

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

challenge icon

챌린지

초급

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

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

  • is_sunny의 값은 true
  • wind_speed의 값은 5.4
  • temperature의 값은 23
  • solar_panel_output의 값은 9
  • is_cloudy의 값은 false

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

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

직접 해보기

fn main() {
    // 변수를 초기화하세요
    // 아래의 임시 값을 과제에서 제시한 값으로 바꾸세요
    let is_sunny: bool = false;
    let wind_speed: f64 = 99.0;
    let temperature: i32 = 0;
    let solar_panel_output: i32 = 99;
    let is_cloudy: bool = true;
    
    // 완전한 논리 표현식
    // 아래의 임시 값을 전체 조건식으로 바꾸세요
    let result: bool = false;
    
    // 아래 줄을 삭제하지 마세요
    println!("Checking conditions for solar energy production...");
    println!("1. Is it sunny? {}", is_sunny);
    println!("2. Is wind speed safe? {}", (wind_speed < 10.0));
    println!("3. Can panels produce more? {}", (solar_panel_output < 15));
    println!("4. Is temperature good OR no clouds? {}", (temperature > 20 || !is_cloudy));
    println!("Final result - Good day for solar energy production: {}", result);
}
quiz icon실력 점검

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

기초의 모든 레슨

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