Filtrage d'intervalles
Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 3 sur 66.
Lorsque vous devez vérifier si une valeur se situe dans une certaine plage de nombres, écrire des branches séparées pour chaque valeur individuelle serait fastidieux. L'expression match de Rust prend en charge les motifs de plage qui vous permettent de faire correspondre une étendue continue de valeurs en utilisant la syntaxe start..=end.
L'opérateur ..= crée une plage inclusive, ce qui signifie que les valeurs de début et de fin sont toutes deux incluses dans la correspondance. Voici comment vous pouvez utiliser des plages dans les branches de match :
let temp = 22;
match temp {
..=0 => println!("Freezing"),
1..=15 => println!("Cold"),
_ => println!("Warm"),
}Dans cet exemple, une température de 22 ne correspondrait pas aux deux premières plages, elle passe donc par la branche générique (wildcard) et affiche "Warm". La plage 1..=15 inclut à la fois 1 et 15, donc toute température de 1 à 15 afficherait "Cold".
Défi
FacileVous recevrez un âge en entrée. Lisez l'entrée, convertissez-la en un entier et utilisez une expression match avec des motifs de plage pour afficher la catégorie d'âge appropriée.
Exigences :
- Si l'âge est
0..=12, affichez"Child" - Si l'âge est
13..=19, affichez"Teenager" - Si l'âge est
20..=64, affichez"Adult" - Si l'âge est
65..=120, affichez"Senior" - Pour tout autre âge, affichez
"Invalid age"
Entrée : Un seul entier représentant l'âge
Sortie : Affichez la catégorie d'âge : "Child", "Teenager", "Adult", "Senior", ou "Invalid age"
Essayez vous-même
use std::io;
fn main() {
// Lire l'entrée
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: Écrivez votre code ci-dessous en utilisant une expression `match` avec des motifs de plage
// Afficher le résultat
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logic & Flow
1Structures de contrôle avancées
L'expression 'match'Filtrage de plusieurs valeursFiltrage d'intervallesL'expression 'if let'Les boucles en tant qu'expressionsRécapitulatif - Analyseur de commandes simple4Regrouper des données avec les structures
Qu'est-ce qu'une structure ?Aperçu des structuresAccéder aux champs d'une structureStructures mutablesLes structures comme paramètres de fonctionStructures tupleRécapitulatif - Créer une structure Book2Introduction aux vecteurs
Qu'est-ce qu'un vecteur ?Créer un vecteurAjouter des éléments avec pushAccéder aux éléments d'un vecteurItérer sur un vecteurItération mutableSupprimer des élémentsRécapitulatif - Suivi de score basique5Paires clé-valeur avec les Hash Maps
Qu'est-ce qu'une Hash Map ?Créer une Hash MapInsérer des paires clé-valeurAccéder aux valeursParcourir une Hash MapMettre à jour une valeurSupprimer une paireRécapitulatif - Compteur de mots8Projet : Inventaire d'articles simple
Configuration du projetAjouter un articleVérifier le stockVendre un articleAssembler le tout3Liste de tâches en ligne de commande
Configuration du projetAjouter une tâcheAfficher toutes les tâchesSupprimer une tâcheCode final