Schleifen als Ausdrücke
Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 5 von 66.
In den meisten Programmiersprachen sind Schleifen Anweisungen, die Code wiederholt ausführen. Rust verfügt jedoch über eine einzigartige Besonderheit: Schleifen können auch Ausdrücke sein, die einen Wert zurückgeben. Das bedeutet, dass du das Ergebnis einer Schleife einer Variablen zuweisen kannst.
Um einen Wert aus einer Schleife zurückzugeben, verwendest du break, gefolgt von dem Wert, den du zurückgeben möchtest:
let result = loop {
// einige Bedingungsprüfungen
if condition_met {
break 42; // Schleife verlassen und 42 zurückgeben
}
};Hier ist ein praktisches Beispiel, das die erste gerade Zahl ab 10 findet:
let mut counter = 10;
let first_even = loop {
if counter % 2 == 0 {
break counter; // die gerade Zahl zurückgeben
}
counter += 1;
};
println!("First even number: {}", first_even);Die Schleife wird fortgesetzt, bis sie eine gerade Zahl findet, verwendet dann break counter, um die Schleife zu verlassen und diese Zahl zurückzugeben. Der zurückgegebene Wert wird first_even zugewiesen.
Aufgabe
EinfachDu erhältst eine Startzahl als Eingabe. Lies die Eingabe ein, wandle sie in eine Ganzzahl um und verwende eine Schleife als Ausdruck, um ausgehend von dieser Zahl die erste durch 7 teilbare Zahl zu finden.
Anforderungen:
- Verwende einen
loop-Ausdruck, der einen Wert zurückgibt - Beginne die Prüfung bei der Eingabezahl
- Finde die erste Zahl, die durch 7 teilbar ist (der Rest ist bei der Division durch 7 gleich 0)
- Verwende
break, um die gefundene Zahl aus der Schleife zurückzugeben - Gib das Ergebnis aus
Eingabe: Eine einzelne Ganzzahl, die die Startzahl darstellt
Ausgabe: Gib die erste durch 7 teilbare Zahl ausgehend von der Eingabezahl aus
Probier es selbst
use std::io;
fn main() {
// Eingabe lesen
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let start_number: i32 = input.trim().parse().expect("Invalid input");
// TODO: Schreibe deinen Code darunter
// Verwende einen Schleifenausdruck, um die erste durch 7 teilbare Zahl zu finden
// Ergebnis ausgeben
// println!("{}", result);
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Kontrollfluss
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler CodeÜbe selbstständig: Online-Rust-Compiler