Menu
Coddy logo textTech

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
		    ...
		}
	}
}
challenge icon

Desafio

Iniciante

Crie 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
    
}
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 Fundamentals