Menu
Coddy logo textTech

Zusammenfassung – Sichere Divisionsfunktion

Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 48 von 66.

challenge icon

Aufgabe

Einfach

Sie erhalten zwei Eingaben. Die erste Eingabe ist eine Zahl, die den Dividenden darstellt, und die zweite Eingabe ist eine Zahl, die den Divisor darstellt. Erstellen Sie eine Funktion safe_divide, die zwei f64-Parameter entgegennimmt und ein Result<f64, &'static str> zurückgibt. Die Funktion sollte Err("Cannot divide by zero") zurückgeben, wenn der Divisor Null ist, andernfalls Ok mit dem Divisionsergebnis. Verwenden Sie einen match-Ausdruck, um das Ergebnis zu verarbeiten und die entsprechende Ausgabe auszugeben.

Anforderungen:

  • Lesen Sie die erste Eingabe (Dividende) ein und entfernen Sie Leerzeichen
  • Parsen Sie die erste Eingabe in f64
  • Lesen Sie die zweite Eingabe (Divisor) ein und entfernen Sie Leerzeichen
  • Parsen Sie die zweite Eingabe in f64
  • Erstellen Sie eine Funktion safe_divide, die zwei f64-Parameter entgegennimmt und Result<f64, &'static str> zurückgibt
  • Prüfen Sie innerhalb der Funktion, ob der Divisor 0.0 ist:
    • Falls ja, geben Sie Err("Cannot divide by zero") zurück
    • Falls nein, geben Sie Ok(dividend / divisor) zurück
  • Rufen Sie die Funktion mit den beiden geparsten Zahlen auf
  • Verwenden Sie einen match-Ausdruck, um das Result zu verarbeiten
  • Geben Sie im Ok(value)-Zweig Folgendes aus: Division result: [value]
  • Geben Sie im Err(error)-Zweig 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 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 Logic & Flow