Menu
CoddyTech

Operator Logika Bagian 3

Termasuk bagian Dasar-Dasar dalam perjalanan Rust di Coddy. Pelajaran 23 dari 75.

Saat memeriksa beberapa kondisi, komputer berhenti memeriksa begitu mengetahui jawaban akhir (Ini disebut evaluasi hubung singkat).

Contohnya:

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

Di sini x sama dengan 0, jadi ekspresi ini tidak akan mengevaluasi y / x > 2. Jika kita membalik urutannya:

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

Ini akan menyebabkan error karena y akan dibagi dengan 0, yang tidak diperbolehkan dalam matematika.

Teknik ini digunakan untuk mengoptimalkan evaluasi ekspresi logis. Contohnya:

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);

Dalam contoh ini, b < 2 dan d < 10 tidak akan dievaluasi karena a > 0 dan c < -5 keduanya salah.

challenge icon

Tantangan

Pemula

Mari buat program untuk menentukan apakah hari ini cocok untuk produksi energi panel surya

Inisialisasi variabel-variabel berikut:

  • is_sunny dengan nilai true
  • wind_speed dengan nilai 5.4
  • temperature dengan nilai 23
  • solar_panel_output dengan nilai 9
  • is_cloudy dengan nilai false

Buat satu ekspresi logis yang memeriksa SEMUA kondisi berikut:

  • Hari ini cerah
  • Kecepatan angin kurang dari 10
  • Output panel surya kurang dari 15
  • Suhu di atas 20 ATAU tidak ada awan

Coba sendiri

fn main() {
    // Inisialisasi variabel
    // Ganti nilai sementara di bawah ini dengan nilai dari tugas
    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;
    
    // Ekspresi logika lengkap
    // Ganti bagian sementara di bawah ini dengan kondisi lengkap
    let result: bool = false;
    
    // Jangan hapus baris di bawah ini
    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!("\\nFinal result - Good day for solar energy production: {}", result);
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Compiler Rust online