Nested If - Else
Parte da seção Fundamentos do Journey de Java da Coddy — lição 32 de 73.
Podemos aninhar instruções if-else if-else umas dentro das outras. Isso nos permite criar estruturas hierárquicas de tomada de decisão.
Tenha em mente que instruções
if profundamente aninhadas podem tornar o código mais difícil de ler e manter.Por exemplo:
if (age > 18) {
if (hasLicense) {
System.out.println("You can drive");
} else {
System.out.println("Get a license first");
}
} else {
System.out.println("Too young to drive");
}
Pode ser aninhado infinitamente:
if (condition1) {
if (condition2) {
if (condition3) {
// runs only when condition1, condition2 and condition3 are all true
...
}
}
}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 150 cm 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 jovem demais:
Sorry, you're too young - Se não alto o suficiente:
Sorry, you're not tall enough - Se menor de 15 e sem adulto:
Sorry, you need an adult with you - Se menor de 15 com adulto:
You can ride with adult supervision! - Se 15 ou mais e alto o suficiente:
You can ride by yourself!
Folha de consulta
Você pode aninhar instruções if-else if-else umas dentro das outras para criar estruturas de tomada de decisão hierárquicas:
if (age > 18) {
if (hasLicense) {
System.out.println("You can drive");
} else {
System.out.println("Get a license first");
}
} else {
System.out.println("Too young to drive");
}
O aninhamento pode ser feito infinitamente:
if (condition1) {
if (condition2) {
if (condition3) {
// if condition1, condition2 and condition3 are true
...
}
}
}Nota: Instruções if profundamente aninhadas podem tornar o código mais difícil de ler e manter.
Experimente você mesmo
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt(); // Não altere esta linha
int height = scanner.nextInt(); // Não altere esta linha
boolean hasAdult = scanner.nextBoolean(); // Não altere esta linha
// Escreva seu código abaixo
scanner.close();
}
}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
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else