Logische Operatoren Teil 3
Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 23 von 75.
Wenn mehrere Bedingungen geprüft werden, hört der Computer mit der Prüfung auf, sobald er die endgültige Antwort kennt (das nennt man Kurzschlussauswertung).
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, weil y durch 0 geteilt wird, was mathematisch 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, weil a > 0 und c < -5 beide falsch sind.
Aufgabe
AnfängerErstellen wir ein Programm, das entscheidet, ob es ein guter Tag für die Energieerzeugung mit Solarmodulen 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 überprüft:
- Es ist sonnig
- Die Windgeschwindigkeit ist kleiner als 10
- Die Leistung des Solarmoduls ist kleiner als 15
- Die Temperatur liegt über 20 ODER es gibt keine Wolken
Probier es selbst
fn main() {
// Variablen initialisieren
// Ersetze die Platzhalterwerte unten durch die Werte 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 folgenden Zeilen 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!("Final 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 Grundlagen
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