If - Else Aninhados
Parte da seção Fundamentals do Journey de Rust da Coddy — lição 28 de 75.
Podemos aninhar instruções if-elif-else umas dentro das outras. Isso nos permite criar estruturas hierárquicas de tomada de decisão.
Por exemplo:
if age > 18 {
if hasLicense {
println!("You can drive");
} else {
println!("Get a license first");
}
} else {
println!("Too young to drive");
}Pode ser aninhado infinitamente:
if condition1 {
if condition2 {
if condition3 {
// se condition1, condition2 e condition3 forem verdadeiros
...
}
}
}Desafio
InicianteCrie um programa que verifica se alguém pode andar em uma montanha-russa. Os requisitos são:
- Deve ter pelo menos 12 anos
- Deve ter mais de 150cm de altura
- Se atenderem a ambos os requisitos, mas tiverem menos de 15 anos, precisam de supervisão de um adulto
Imprima exatamente estas mensagens para cada caso:
- Se for muito jovem:
Sorry, you're too young - Se não for alto o suficiente:
Sorry, you're not tall enough - Se tiver menos de 15 anos e sem adulto:
Sorry, you need an adult with you - Se tiver menos de 15 anos com adulto:
You can ride with adult supervision! - Se tiver 15 anos ou mais e for alto o suficiente:
You can ride by yourself!
Folha de consulta
Você pode aninhar instruções if-elif-else umas dentro das outras para criar estruturas de tomada de decisão hierárquicas:
if age > 18 {
if hasLicense {
println!("You can drive");
} else {
println!("Get a license first");
}
} else {
println!("Too young to drive");
}O aninhamento pode ser feito infinitamente:
if condition1 {
if condition2 {
if condition3 {
// se condition1, condition2 e condition3 forem verdadeiros
...
}
}
}Experimente você mesmo
use std::io;
fn main() {
let mut age_input = String::new();
let mut height_input = String::new();
let mut adult_input = String::new();
io::stdin().read_line(&mut age_input).unwrap();
io::stdin().read_line(&mut height_input).unwrap();
io::stdin().read_line(&mut adult_input).unwrap();
let age: i32 = age_input.trim().parse().unwrap();
let height: i32 = height_input.trim().parse().unwrap();
let has_adult: bool = adult_input.trim().parse().unwrap();
// Escreva seu código abaixo
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentals
4Operadores Parte 1
Operadores AritméticosOperador de MóduloAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Entrada e Saída Básica
Exibindo no ConsoleLendo a Entrada do UsuárioRevisão - Até 120Revisão - Verdadeiro ou Falso5Operadores Parte 2
Operadores Lógicos Parte 1Operadores Lógicos Parte 2Recapitulação - Lógica SimplesOperadores Lógicos Parte 33Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaInferência de TipoRecapitulação - Inicializar VariáveisConversão de Tipo9Laços
For sobre SériesLaço WhileBreakContinueLaços AninhadosRótulos de LoopLoop InfinitoRecapitulação - Entrada Dinâmica