Menu
Coddy logo textTech

Correspondência de Intervalos

Parte da seção Logic & Flow 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 cai no braço curinga e imprime "Warm". O intervalo 1..=15 inclui tanto 1 quanto 15, então qualquer temperatura de 1 a 15 imprimiria "Cold".

challenge icon

Desafio

Fácil

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

Requisitos:

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

Entrada: Um único número 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 Logic & Flow