Menu
Coddy logo textTech

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 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 değerlendirilmeyecektir; çünkü a > 0 ve c < -5 ifadelerinin ikisi de yanlıştır.

challenge icon

Görev

Başlangıç

Güneş paneli enerji üretimi için günün iyi olup olmadığına karar veren bir program oluşturalım

Şu değişkenleri başlatın:

  • is_sunny değeri true olacak şekilde
  • wind_speed değeri 5.4 olacak şekilde
  • temperature değeri 23 olacak şekilde
  • solar_panel_output değeri 9 olacak şekilde
  • is_cloudy değeri false olacak şekilde

TÜM bu koşulları kontrol eden tek bir mantıksal ifade oluşturun:

  • Hava güneşli
  • Rüzgâr hızı 10'dan düşük
  • Güneş paneli çıktısı 15'ten düşük
  • Sıcaklık 20'nin üzerinde VEYA hava bulutlu değil

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.

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

Kendi başına pratik yap: Online Rust derleyicisi