Schleifen als Ausdrücke
Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 5 von 66.
In den meisten Programmiersprachen sind Schleifen Anweisungen, die Code wiederholt ausführen. Aber Rust hat eine einzigartige Besonderheit: Schleifen können auch Ausdrücke sein, die einen Wert zurückgeben. Das bedeutet, dass man das Ergebnis einer Schleife einer Variablen zuweisen kann.
Um einen Wert aus einer Schleife zurückzugeben, verwenden Sie break gefolgt von dem Wert, den Sie zurückgeben möchten:
let result = loop {
// Überprüfung einer Bedingung
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; // gibt die gerade Zahl zurück
}
counter += 1;
};
println!("First even number: {}", first_even);Die Schleife wird fortgesetzt, bis sie eine gerade Zahl findet, und verwendet dann break counter, um die Schleife zu beenden und diese Zahl zurückzugeben. Der zurückgegebene Wert wird first_even zugewiesen.
Aufgabe
EinfachSie erhalten eine Startzahl als Eingabe. Lesen Sie die Eingabe ein, konvertieren Sie diese in eine Ganzzahl und verwenden Sie einen loop-Ausdruck, um die erste durch 7 teilbare Zahl ab dieser Zahl zu finden.
Anforderungen:
- Verwenden Sie einen
loop-Ausdruck, der einen Wert zurückgibt - Beginnen Sie die Prüfung ab der eingegebenen Zahl
- Finden Sie die erste Zahl, die durch 7 teilbar ist (der Rest bei der Division durch 7 ist 0)
- Verwenden Sie
break, um die gefundene Zahl aus dem Loop zurückzugeben - Geben Sie das Ergebnis aus
Eingabe: Eine einzelne Ganzzahl, die die Startzahl darstellt
Ausgabe: Geben Sie die erste durch 7 teilbare Zahl ab der eingegebenen Zahl aus
Spickzettel
In Rust können Schleifen Ausdrücke sein, die einen Wert zurückgeben. Verwenden Sie break gefolgt von einem Wert, um die Schleife zu beenden und diesen Wert zurückzugeben:
let result = loop {
if condition_met {
break 42; // exit loop and return 42
}
};Beispiel für das Finden der ersten geraden Zahl:
let mut counter = 10;
let first_even = loop {
if counter % 2 == 0 {
break counter; // return the even number
}
counter += 1;
};
println!("First even number: {}", first_even);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: Schreiben Sie Ihren Code unten
// Verwenden Sie 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 Logic & Flow
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