Menu
Coddy logo textTech

Zusammenfassung – Sichere Divisionsfunktion

Teil des Abschnitts Logik & Kontrollfluss der Rust-Journey von Coddy. Lektion 48 von 66.

challenge icon

Aufgabe

Einfach

Du erhältst zwei Eingaben. Die erste Eingabe ist eine Zahl, die den Dividenden darstellt, und die zweite Eingabe ist eine Zahl, die den Divisor darstellt. Erstelle eine Funktion safe_divide, die zwei f64-Parameter übernimmt und ein Result<f64, &'static str> zurückgibt. Die Funktion soll Err("Cannot divide by zero") zurückgeben, wenn der Divisor null ist, und andernfalls Ok mit dem Ergebnis der Division. Verwende einen match-Ausdruck, um das Ergebnis zu verarbeiten und die entsprechende Ausgabe auszugeben.

Anforderungen:

  • Lies die erste Eingabe (Dividend) ein und entferne Leerzeichen
  • Wandle die erste Eingabe in f64 um
  • Lies die zweite Eingabe (Divisor) ein und entferne Leerzeichen
  • Wandle die zweite Eingabe in f64 um
  • Erstelle eine Funktion safe_divide, die zwei f64-Parameter übernimmt und Result<f64, &'static str> zurückgibt
  • Prüfe innerhalb der Funktion, ob der Divisor 0.0 ist:
    • Wenn ja, gib Err("Cannot divide by zero") zurück
    • Wenn nein, gib Ok(dividend / divisor) zurück
  • Rufe die Funktion mit den beiden geparsten Zahlen auf
  • Verwende einen match-Ausdruck, um das Result zu verarbeiten
  • Gib im Ok(value)-Arm Folgendes aus: Division result: [value]
  • Gib im Err(error)-Arm Folgendes aus: Error: [error]

Eingabe:

  • Erste Zeile: Eine Zahl, die den Dividenden darstellt (z. B. 20.0)
  • Zweite Zeile: Eine Zahl, die den Divisor darstellt (z. B. 4.0)

Ausgabe:

  • Wenn die Division erfolgreich ist: Division result: [result]
  • Bei einer Division durch null: Error: Cannot divide by zero

Probier es selbst

use std::io;

// TODO: Erstellen Sie hier die Funktion safe_divide
// fn safe_divide(dividend: f64, divisor: f64) -> Result<f64, &'static str> {
//     Ihr Code hier
// }

fn main() {
    // Erste Eingabe lesen (Dividend)
    let mut dividend_input = String::new();
    io::stdin().read_line(&mut dividend_input).expect("Failed to read line");
    let dividend: f64 = dividend_input.trim().parse().expect("Invalid number");
    
    // Zweite Eingabe lesen (Divisor)
    let mut divisor_input = String::new();
    io::stdin().read_line(&mut divisor_input).expect("Failed to read line");
    let divisor: f64 = divisor_input.trim().parse().expect("Invalid number");
    
    // TODO: Rufen Sie safe_divide auf und verwenden Sie match, um das Result zu verarbeiten
    // Geben Sie die entsprechende Ausgabe basierend auf dem Ergebnis aus
}

Alle Lektionen in Logik & Kontrollfluss

Übe selbstständig: Online-Rust-Compiler