Menu
CoddyTech

Match-Anweisung

Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 26 von 75.

Der match-Ausdruck ermöglicht es dir, einen Wert mit einer Reihe von Mustern zu vergleichen und Code basierend darauf auszuführen, welches Muster übereinstimmt.

Hier ist die grundlegende Struktur eines match-Ausdrucks:

match variable {
	pattern1 => expression1,
	pattern2 => expression2,
	// ... weitere Muster
	_ => default_expression,
}

Auf das Schlüsselwort match folgt der Wert, den du testen möchtest.

Jeder Zweig des Match-Ausdrucks besteht aus einem Muster, auf das => und der auszuführende Code folgen.

Der Unterstrich _ ist der Standardfall, der auf alles zutrifft, was von anderen Mustern nicht erfasst wird.

Hier ist ein Beispiel:

let day = 3;
let day_name = match day {
	1 => "Monday",
	2 => "Tuesday",
	3 => "Wednesday",
	// ... weitere Muster,
	_ => "Invalid day",
};

Verwende für mehrere Codezeilen in einem Arm einen Block:

let day = 3;
let day_name = match day {
	1 => {
		println!("First day of the week!");
		"Monday"
	},
	2 => "Tuesday",
	// ... weitere Fälle
	_ => "Invalid day",
};

Du kannst mit | mehrere Muster abgleichen:

let day = 3;
let day_type = match day {
	1 | 2 | 3 | 4 | 5 => "Weekday",
	6 | 7 => "Weekend",
	_ => "Invalid day",
};

Match-Ausdrücke in Rust müssen vollständig sein, das heißt, sie müssen alle möglichen Werte abdecken. Der Compiler überprüft das für dich.

challenge icon

Aufgabe

Anfänger

Erstelle ein Programm, das eine Monatsnummer (1 für Januar, 2 für Februar usw.) entgegennimmt und die Jahreszeit ausgibt, zu der der Monat gehört. Verwende für die Logik eine match-Anweisung.

Die Jahreszeiten und die zugehörigen Monate sind:

  • "Winter": Dezember (12), Januar (1), Februar (2)
  • "Spring": März (3), April (4), Mai (5)
  • "Summer": Juni (6), Juli (7), August (8)
  • "Autumn": September (9), Oktober (10), November (11)

Weise season genau diese englischen Zeichenfolgen zu, damit das Programm zum Beispiel status = Spring ausgibt.

Probier es selbst

use std::io;

fn main() {
    let mut input = String::new();
    io::stdin().read_line(&mut input).unwrap();
    let month: i32 = input.trim().parse().unwrap();
    // Schreibe deinen Code unten
    let season = 

    // Ändere die Zeile unten nicht
    println!("status = {}", season);
}
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 Grundlagen

Übe selbstständig: Online-Rust-Compiler