Bereiche abgleichen
Teil des Abschnitts Logic & Flow der Rust-Journey von Coddy — Lektion 3 von 66.
Wenn Sie prüfen müssen, ob ein Wert in einen bestimmten Zahlenbereich fällt, wäre es mühsam, für jeden einzelnen Wert separate Zweige zu schreiben. Rusts match-Ausdruck unterstützt Bereichsmuster, mit denen Sie gegen eine kontinuierliche Spanne von Werten unter Verwendung der start..=end-Syntax abgleichen können.
Der ..=-Operator erstellt einen inklusiven Bereich, was bedeutet, dass sowohl der Start- als auch der Endwert in die Übereinstimmung einbezogen werden. So können Sie Bereiche in Match-Armen verwenden:
let temp = 22;
match temp {
..=0 => println!("Freezing"),
1..=15 => println!("Cold"),
_ => println!("Warm"),
}In diesem Beispiel würde eine Temperatur von 22 nicht mit den ersten beiden Bereichen übereinstimmen, sodass sie auf den Wildcard-Zweig durchfällt und „Warm“ ausgibt. Der Bereich 1..=15 schließt sowohl 1 als auch 15 ein, sodass jede Temperatur von 1 bis 15 „Cold“ ausgeben würde.
Aufgabe
EinfachSie erhalten ein Alter als Eingabe. Lesen Sie die Eingabe, konvertieren Sie sie in eine Ganzzahl und verwenden Sie einen match-Ausdruck mit Bereichsmustern, um die entsprechende Alterskategorie auszugeben.
Anforderungen:
- Wenn das Alter
0..=12ist, geben Sie"Child"aus - Wenn das Alter
13..=19ist, geben Sie"Teenager"aus - Wenn das Alter
20..=64ist, geben Sie"Adult"aus - Wenn das Alter
65..=120ist, geben Sie"Senior"aus - Für jedes andere Alter geben Sie
"Invalid age"aus
Eingabe: Eine einzelne Ganzzahl, die das Alter darstellt
Ausgabe: Geben Sie die Alterskategorie aus: "Child", "Teenager", "Adult", "Senior" oder "Invalid age"
Probier es selbst
use std::io;
fn main() {
// Eingabe einlesen
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let age: i32 = input.trim().parse().expect("Please enter a valid number");
// TODO: Schreibe deinen Code unten unter Verwendung eines `match`-Ausdrucks mit Bereichsmustern
// Das Ergebnis ausgeben
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logic & Flow
1Fortgeschrittener Kontrollfluss
Der 'match'-AusdruckAbgleichen mehrerer WerteBereiche abgleichenDer 'if let'-AusdruckSchleifen als AusdrückeRückblick – Einfacher Befehls-Parser4Daten gruppieren mit Structs
Was ist ein Struct?Übersicht über StructsZugriff auf Struct-FelderVeränderbare StructsStructs als FunktionsparameterTupel-StructsZusammenfassung – Ein Buch-Struct erstellen2Einführung in Vektoren
Was ist ein Vektor?Einen Vektor erstellenElemente mit push hinzufügenZugriff auf Vektor-ElementeÜber einen Vektor iterierenVeränderliche IterationElemente entfernenZusammenfassung – Einfacher Score-Tracker5Schlüssel-Wert-Paare mit Hash Maps
Was ist eine Hash Map?Erstellen einer Hash MapEinfügen von Schlüssel-Wert-PaarenZugreifen auf WerteIterieren über eine Hash MapAktualisieren eines WertesEntfernen eines PaaresZusammenfassung – Wortzähler8Projekt: Einfaches Artikelinventar
Projekt-SetupEinen Artikel hinzufügenLagerbestand prüfenEinen Artikel verkaufenAlles zusammenfügen11Abschluss-Herausforderungen
Wiederholung - Einzigartige ElementeWiederholung - Benutzerprofil-ValidatorWiederholung - Noten-Zusammenfassung3Kommandozeilen-To-Do-Liste
Projekt-SetupEine Aufgabe hinzufügenAlle Aufgaben anzeigenEine Aufgabe entfernenFinaler Code