Menu
Coddy logo textTech

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".

challenge icon

Défi

Facile

Vous 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
}
quiz iconTestez-vous

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