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".
Desafio
FácilVocê 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
}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
1Fluxo de Controle Avançado
A Expressão 'match'Correspondência de Múltiplos ValoresCorrespondência de IntervalosA Expressão 'if let'Loops como ExpressõesRecapitulação - Parser de Comandos Simples4Agrupando Dados com Structs
O que é uma Struct?Visão Geral de StructsAcessando Campos de uma StructStructs MutáveisStructs como Parâmetros de FunçãoTuple StructsRecapitulação - Criando uma Struct Book2Introdução a Vetores
O que é um Vetor?Criando um VetorAdicionando Elementos com pushAcessando Elementos do VetorIterando sobre um VetorIteração MutávelRemovendo ElementosRecapitulação - Rastreador de Pontuação Básico5Pares Chave-Valor com Hash Maps
O que é um Hash Map?Criando um Hash MapInserindo Pares Chave-ValorAcessando ValoresIterando sobre um Hash MapAtualizando um ValorRemovendo um ParRecapitulação - Contador de Palavras8Projeto: Inventário Simples de Itens
Configuração do ProjetoAdicionando um ItemVerificando o EstoqueVendendo um ItemJuntando tudo3Lista de Tarefas via Linha de Comando
Configuração do ProjetoAdicionando uma TarefaVisualizando Todas as TarefasRemovendo uma TarefaCódigo Final