Menu
Coddy logo textTech

Correspondência de Intervalos

Parte da seção Lógica & Fluxo do Journey de Rust da Coddy. Lição 3 de 66.

Quando você precisa verificar se um valor está dentro de um determinado intervalo de números, escrever braços separados para cada valor individual seria tedioso. A expressão match do Rust suporta padrões de intervalo que permitem a correspondência com um intervalo contínuo de valores usando a sintaxe start..=end.

O operador ..= cria um intervalo inclusivo, o que significa que tanto o valor inicial quanto o final são incluídos na correspondência. Veja como você pode usar intervalos em braços de match:

let temp = 22;

match temp {
    ..=0 => println!("Freezing"),
    1..=15 => println!("Cold"),
    _ => println!("Warm"),
}

Neste exemplo, uma temperatura de 22 não corresponderia aos dois primeiros intervalos, então ela passaria para o caso curinga e exibiria "Warm". O intervalo 1..=15 inclui 1 e 15, portanto qualquer temperatura de 1 a 15 exibiria "Cold".

challenge icon

Desafio

Fácil

Você receberá uma idade como entrada. Leia a entrada, converta-a em um inteiro e use uma expressão match com padrões de intervalo para imprimir a categoria de idade apropriada.

Requisitos:

  • Se a idade estiver entre 0..=12, imprima "Child"
  • Se a idade estiver entre 13..=19, imprima "Teenager"
  • Se a idade estiver entre 20..=64, imprima "Adult"
  • Se a idade estiver entre 65..=120, imprima "Senior"
  • Para qualquer outra idade, imprima "Invalid age"

Entrada: Um único inteiro representando a idade

Saída: Imprima a categoria de idade: "Child", "Teenager", "Adult", "Senior" ou "Invalid age"

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 age: i32 = input.trim().parse().expect("Please enter a valid number");
    
    // TODO: Escreva seu código abaixo usando uma expressão `match` com padrões de intervalo
    
    // Imprimir o resultado
}
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 Lógica & Fluxo

Pratique por conta própria: Compilador de Rust online