Menu
Coddy logo textTech

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.

challenge icon

Aufgabe

Einfach

Sie 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);
}
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 Logic & Flow