Menu
Coddy logo textTech

Abgleichen mehrerer Werte

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

Manchmal müssen Sie mehrere verschiedene Werte abgleichen, die alle denselben Code auslösen sollen. Anstatt separate Zweige für jeden Wert zu schreiben, ermöglicht Rust es Ihnen, mehrere Muster in einem einzigen Zweig mit dem | (ODER)-Operator zu kombinieren.

Hier erfahren Sie, wie Sie mehrere Werte in einem Arm abgleichen können:

let month = 12;

match month {
    12 | 1 | 2 => println!("Winter"),
    3 | 4 | 5 => println!("Spring"),
    6 | 7 | 8 => println!("Summer"),
    9 | 10 | 11 => println!("Fall"),
    _ => println!("Invalid month"),
}

Der |-Operator funktioniert wie das „ODER“ im Englischen – wenn der Wert mit irgendeinem der durch | getrennten Muster übereinstimmt, wird dieser Zweig ausgeführt. Dies macht Ihren Code viel sauberer, als separate Zweige zu haben, die alle dasselbe tun.

challenge icon

Aufgabe

Einfach

Sie erhalten eine Tagesnummer (1-7) als Eingabe, die einen Wochentag darstellt. Lesen Sie die Eingabe ein, konvertieren Sie diese in eine Ganzzahl und verwenden Sie einen match-Ausdruck mit dem |-Operator, um auszugeben, ob es sich um einen Wochentag oder das Wochenende handelt.

Anforderungen:

  • Wenn der Tag 1, 2, 3, 4 oder 5 ist, geben Sie "Weekday" aus
  • Wenn der Tag 6 oder 7 ist, geben Sie "Weekend" aus
  • Für jede andere Zahl geben Sie "Invalid day" aus

Eingabe: Eine einzelne Ganzzahl, die die Tagesnummer darstellt

Ausgabe: Geben Sie entweder "Weekday", "Weekend" oder "Invalid day" aus

Spickzettel

Sie können mehrere Muster in einem einzigen Match-Arm kombinieren, indem Sie den | (ODER)-Operator verwenden. Wenn der Wert mit einem der durch | getrennten Muster übereinstimmt, wird dieser Arm ausgeführt.

let month = 12;

match month {
    12 | 1 | 2 => println!("Winter"),
    3 | 4 | 5 => println!("Spring"),
    6 | 7 | 8 => println!("Summer"),
    9 | 10 | 11 => println!("Fall"),
    _ => println!("Invalid month"),
}

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 day: i32 = input.trim().parse().expect("Please enter a number");
    
    // TODO: Schreiben Sie Ihren Code unten unter Verwendung eines match-Ausdrucks mit dem |-Operator
    
}
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