Menu
Coddy logo textTech

Mantıksal Operatörler Bölüm 3

Coddy'nin Rust Journey'sinin Fundamentals bölümünün bir parçası. Ders 23 / 75.

Birden fazla conditions kontrol edilirken, bilgisayar nihai yanıtı öğrendiği anda kontrol etmeyi durdurur (Buna kısa devre değerlendirmesi / short-circuit evaluation 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ğerlendirmeyecektir. Sırayı tersine çevirseydik:

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

Bu durum bir hatayla sonuçlanacaktır çünkü y, matematikte tanımsız olan 0'a bölünecektir.

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, a > 0 ve c < -5 ifadelerinin her ikisi de yanlış olduğu için evaluated edilmeyecektir.

challenge icon

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 ilklendirin (initialize edin):

  • true değerine sahip is_sunny
  • 5.4 değerine sahip wind_speed
  • 23 değerine sahip temperature
  • 9 değerine sahip solar_panel_output
  • false değerine sahip is_cloudy

Bu koşulların HEPSİNİ kontrol eden tek bir mantıksal ifade oluşturun:

  • Hava güneşli
  • Rüzgar hızı 10'dan küçük
  • Güneş paneli çıkışı 15'ten küçük
  • Sıcaklık 20'nin üzerinde VEYA bulut yok

Kendin dene

fn main() {
    // Değişkenleri başlat
    // Aşağıdaki yer tutucu değerleri görevdekilerle 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 yer tutucuyu tam koşulla 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!("\\nFinal result - Good day for solar energy production: {}", result);
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Fundamentals bölümündeki tüm dersler

Kendi başına pratik yap: Online Rust derleyicisi