Menu
Coddy logo textTech

Logische Operatoren Teil 3

Teil des Abschnitts Fundamentals der Rust-Journey von Coddy. Lektion 23 von 75.

Beim Überprüfen mehrerer Bedingungsprüfungen (conditions) stoppt der Computer die Überprüfung, sobald das Endergebnis feststeht (Dies wird als Kurzschlussauswertung/Short-Circuit Evaluation bezeichnet).

Zum Beispiel:

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

Hier ist x gleich 0, daher wird y / x > 2 nicht ausgewertet. Wenn wir die Reihenfolge umkehren würden:

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

Dies führt zu einem Fehler, da y durch 0 geteilt wird, was in der Mathematik unzulässig ist.

Diese Technik wird verwendet, um die Auswertung logischer Ausdrücke zu optimieren. Zum Beispiel:

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

In diesem Beispiel werden b < 2 und d < 10 nicht ausgewertet, da a > 0 und c < -5 beide falsch sind.

challenge icon

Aufgabe

Anfänger

Lass uns ein Programm erstellen, um zu entscheiden, ob es ein guter Tag für die Solarenergieerzeugung ist

Initialisiere diese Variablen:

  • is_sunny mit dem Wert true
  • wind_speed mit dem Wert 5.4
  • temperature mit dem Wert 23
  • solar_panel_output mit dem Wert 9
  • is_cloudy mit dem Wert false

Erstelle einen logischen Ausdruck, der ALLE diese Bedingungen prüft:

  • Es ist sonnig
  • Die Windgeschwindigkeit ist kleiner als 10
  • Die Solarpanel-Leistung ist kleiner als 15
  • Die Temperatur ist über 20 ODER es gibt keine Wolken

Probier es selbst

fn main() {
    // Variablen initialisieren
    // Ersetze die Platzhalterwerte unten durch die aus der Aufgabe
    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;
    
    // Der vollständige logische Ausdruck
    // Ersetze den Platzhalter unten durch die vollständige Bedingung
    let result: bool = false;
    
    // Lösche die Zeilen unten nicht
    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 iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Fundamentals

Übe selbstständig: Online-Rust-Compiler