Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

Du 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);
}
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 Logik & Kontrollfluss

Übe selbstständig: Online-Rust-Compiler