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.
Tantangan
PemulaMari buat program untuk menentukan apakah hari ini cocok untuk produksi energi panel surya
Inisialisasi variabel-variabel berikut:
is_sunnydengan nilai truewind_speeddengan nilai 5.4temperaturedengan nilai 23solar_panel_outputdengan nilai 9is_cloudydengan 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);
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
4Operator Bagian 1
Operator AritmetikaOperator ModuloPintasan AritmetikaOperator PerbandinganPerbandingan String7Input/Output Dasar
Menampilkan teks di konsolMembaca input penggunaUlasan: Hingga 120Ulasan: Benar atau Salah5Operator Bagian 2
Operator Logika Bagian 1Operator Logika Bagian 2Ulasan: Logika SederhanaOperator Logika Bagian 311Fungsi
Mendeklarasikan FungsiParameter dan ArgumenNilai KembalianBeberapa Nilai KembalianRingkasan: Fungsi SigmaRingkasan: Fungsi Validasi14Iterasi pada Array
Panduan RangeFor Loop yang DisempurnakanBorrow dalam LoopOperasi Umum pada Array3Variabel Bagian 2
Deklarasi TipeKonvensi PenamaanInferensi TipeRangkuman: Inisialisasi VariabelKonversi Tipe9Perulangan
For untuk Menelusuri UrutanWhile LoopBreakContinueNested LoopLabel LoopInfinite LoopRingkasan: Input DinamisLatihan sendiri: Compiler Rust online