If - Else Aninhado
Parte da seção Fundamentos do Journey de C++ da Coddy — lição 32 de 74.
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) {
std::cout << "You can drive";
} else {
std::cout << "Get a license first";
}
} else {
std::cout << "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 verifique se alguém pode andar em uma montanha-russa. Os requisitos são:
- Deve ter pelo menos 12 anos de idade
- Deve ter mais de 150cm de altura
- Se atenderem a ambos os requisitos, mas tiverem menos de 15 anos, precisarão de supervisão de um adulto
Imprima exatamente estas mensagens para cada caso:
- Se for muito jovem:
Sorry, you are too young - Se não for alto o suficiente:
Sorry, you are not tall enough - Se tiver menos de 15 anos e não houver adulto:
Sorry, you need an adult with you - Se tiver menos de 15 anos com um 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) {
std::cout << "You can drive";
} else {
std::cout << "Get a license first";
}
} else {
std::cout << "Too young to drive";
}O aninhamento pode ser feito infinitamente:
if (condition1) {
if (condition2) {
if (condition3) {
// se condition1, condition2 e condition3 forem verdadeiras
}
}
}Experimente você mesmo
#include <iostream>
int main() {
int age, height;
bool hasAdult;
std::cin >> age >> height >> hasAdult; // Não altere esta linha
// Escreva seu código abaixo
return 0;
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Fundamentos
4Operadores Parte 1
Operadores AritméticosOperador de MóduloIncremento/DecrementoPós-incremento/DecrementoAtalhos AritméticosOperadores de ComparaçãoComparação de Strings7Fundamentos de Entrada/Saída
Comando coutComando cinEntrada de StringRevisão - Até 120Revisão - Verdadeiro ou Falso3Variáveis Parte 2
Declaração de TipoConvenções de NomenclaturaRecapitulação - Inicializar VariáveisType Casting Parte 1Type Casting Parte 26Tomada de Decisão
Estrutura IfIf - ElseEstrutura SwitchOperador CondicionalRecapitulação - If ElseIf - Else Aninhado