Menu
Coddy logo textTech

Correspondência de Múltiplos Valores

Parte da seção Logic & Flow do Journey de Rust da Coddy — lição 2 de 66.

Às vezes, você precisa corresponder a vários valores diferentes que devem todos acionar o mesmo código. Em vez de escrever braços separados para cada valor, o Rust permite combinar múltiplos padrões em um único braço usando o operador | (OU).

Veja como você pode corresponder a múltiplos valores em um único braço:

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

O operador | funciona como o "OU" em inglês - se o valor corresponder a qualquer um dos padrões separados por |, aquele braço será executado. Isso torna seu código muito mais limpo do que ter braços separados que fazem todos a mesma coisa.

challenge icon

Desafio

Fácil

Você receberá um número de dia (1-7) como entrada, representando um dia da semana. Leia a entrada, converta-a para um número inteiro e use uma expressão match com o operador | para imprimir se é um dia útil ou fim de semana.

Requisitos:

  • Se o dia for 1, 2, 3, 4, ou 5, imprima "Weekday"
  • Se o dia for 6 ou 7, imprima "Weekend"
  • Para qualquer outro número, imprima "Invalid day"

Entrada: Um único número inteiro representando o número do dia

Saída: Imprima "Weekday", "Weekend", ou "Invalid day"

Folha de consulta

Você pode combinar múltiplos padrões em um único braço de match usando o operador | (OU). Se o valor corresponder a qualquer um dos padrões separados por |, esse braço será executado.

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

Experimente você mesmo

use std::io;

fn main() {
    // Ler a entrada
    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: Escreva seu código abaixo usando a expressão match com o operador |
    
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Logic & Flow