Mantıksal Operatörler Bölüm 3
Coddy'nin Rust Journey'sinin Temeller bölümünün bir parçası. Ders 23 / 75.
Birden fazla koşulu denetlerken bilgisayar, nihai yanıtı öğrenir öğrenmez denetlemeyi durdurur (Buna kısa devre değerlendirmesi denir).
Örneğin:
let x: i32 = 0;
let y: i32 = 5;
let result: bool = x != 0 && y / x > 2;Burada x, 0'a eşittir; bu nedenle y / x > 2 ifadesini değerlendirmez. Sırayı tersine çevirirsek:
let result: bool = y / x > 2 && x != 0;Bu, hataya neden olur çünkü y 0'a bölünecek ve bu matematikte geçersizdir.
Bu teknik, mantıksal ifadelerin değerlendirilmesini optimize etmek için kullanılır. Örneğin:
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);Bu örnekte b < 2 ve d < 10 değerlendirilmeyecektir çünkü a > 0 ve c < -5 ifadelerinin ikisi de yanlıştır.
Görev
BaşlangıçGüneş paneli enerji üretimi için iyi bir gün olup olmadığına karar veren bir program oluşturalım
Şu değişkenleri başlat:
is_sunnydeğerini true olarak ayarlawind_speeddeğerini 5.4 olarak ayarlatemperaturedeğerini 23 olarak ayarlasolar_panel_outputdeğerini 9 olarak ayarlais_cloudydeğerini false olarak ayarla
TÜM bu koşulları kontrol eden tek bir mantıksal ifade oluştur:
- Hava güneşli
- Rüzgâr hızı 10'dan az
- Güneş paneli çıkışı 15'ten az
- Sıcaklık 20'nin üzerinde VEYA hava bulutlu değil
Kendin dene
fn main() {
// Değişkenleri başlat
// Aşağıdaki geçici değerleri görevde verilen değerlerle değiştir
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;
// Tam mantıksal ifade
// Aşağıdaki geçici ifadeyi koşulun tamamıyla değiştir
let result: bool = false;
// Aşağıdaki satırları silme
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);
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Temeller bölümündeki tüm dersler
4Operatörler Bölüm 1
Aritmetik OperatörlerModül OperatörüAritmetik KısayollarKarşılaştırma OperatörleriString Karşılaştırma7Temel Girdi-Çıktı
Konsola YazdırmaKullanıcı Girdisi OkumaÖzet - 120'ye KadarÖzet - Doğru veya Yanlış5Operatörler Bölüm 2
Mantıksal Operatörler Bölüm 1Mantıksal Operatörler Bölüm 2Özet - Basit MantıkMantıksal Operatörler Bölüm 311Fonksiyonlar
Fonksiyon TanımlamaParametreler ve ArgümanlarDönüş DeğerleriBirden Fazla Dönüş DeğeriÖzet - Sigma FonksiyonuÖzet - Doğrulama Fonksiyonu14Diziler Üzerinde Gezinme
Range RehberiGelişmiş For DöngüsüDöngü İçinde Ödünç AlmaYaygın Dizi İşlemleri3Değişkenler Bölüm 2
Tür Bildirimiİsimlendirme KurallarıTür ÇıkarımıÖzet - Değişkenleri BaşlatmaTür Dönüştürme9Döngüler
Seriler Üzerinde ForWhile DöngüsüBreakContinueİç İçe DöngülerDöngü EtiketleriSonsuz DöngüÖzet - Dinamik GirdiKendi başına pratik yap: Online Rust derleyicisi