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.
Aufgabe
AnfängerLass uns ein Programm erstellen, um zu entscheiden, ob es ein guter Tag für die Solarenergieerzeugung ist
Initialisiere diese Variablen:
is_sunnymit dem Wert truewind_speedmit dem Wert 5.4temperaturemit dem Wert 23solar_panel_outputmit dem Wert 9is_cloudymit 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);
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Fundamentals
4Operatoren Teil 1
Arithmetische OperatorenModulo-OperatorArithmetische AbkürzungenVergleichsoperatorenString-Vergleich7Grundlagen IO
Ausgabe in die KonsoleBenutzereingaben lesenWiederholung - Bis 120Wiederholung - Wahr oder Falsch5Operatoren Teil 2
Logische Operatoren Teil 1Logische Operatoren Teil 2Wiederholung - Einfache LogikLogische Operatoren Teil 311Funktionen
Funktionen deklarierenParameter und ArgumenteRückgabewerteMehrere RückgabewerteWiederholung - Sigma-FunktionWiederholung - Validierungsfunktion14Iterieren über Arrays
Range-LeitfadenErweiterte For-SchleifeBorrowing in SchleifenGängige Array-Operationen3Variablen Teil 2
TypdeklarationNamenskonventionenTypinferenzRückblick - Variablen initialisierenTypumwandlung6Entscheidungsfindung
If-AusdrückeIf-ElseMatch-AnweisungZusammenfassung - If-ElseVerschachteltes If-Else9Schleifen
For-Schleife über SerienWhile-SchleifeBreakContinueVerschachtelte SchleifenSchleifen-LabelsEndlosschleifeRückblick – Dynamische EingabeÜbe selbstständig: Online-Rust-Compiler