Menu
Coddy logo textTech

Filtrage de plusieurs valeurs

Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 2 sur 66.

Parfois, vous devez faire correspondre plusieurs valeurs différentes qui devraient toutes déclencher le même code. Au lieu d'écrire des branches séparées pour chaque valeur, Rust vous permet de combiner plusieurs motifs dans une seule branche en utilisant l'opérateur | (OU).

Voici comment vous pouvez faire correspondre plusieurs valeurs dans une seule branche :

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"),
}

L'opérateur | fonctionne comme le « OU » en français — si la valeur correspond à n'importe lequel des motifs séparés par |, cette branche sera exécutée. Cela rend votre code beaucoup plus propre que d'avoir des branches séparées qui font toutes la même chose.

challenge icon

Défi

Facile

Vous recevrez un numéro de jour (1-7) en entrée, représentant un jour de la semaine. Lisez l'entrée, convertissez-la en un entier, et utilisez une expression match avec l'opérateur | pour afficher s'il s'agit d'un jour de semaine ou du week-end.

Exigences :

  • Si le jour est 1, 2, 3, 4, ou 5, affichez "Weekday"
  • Si le jour est 6 ou 7, affichez "Weekend"
  • Pour tout autre nombre, affichez "Invalid day"

Entrée : Un seul entier représentant le numéro du jour

Sortie : Affichez soit "Weekday", "Weekend", ou "Invalid day"

Aide-mémoire

Vous pouvez combiner plusieurs motifs dans une seule branche de correspondance en utilisant l'opérateur | (OU). Si la valeur correspond à l'un des motifs séparés par |, cette branche sera exécutée.

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"),
}

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 day: i32 = input.trim().parse().expect("Please enter a number");
    
    // TODO: Écrivez votre code ci-dessous en utilisant l'expression match avec l'opérateur |
    
}
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