Nested If - Else
Parte de la sección Fundamentos del Journey de Java de Coddy — lección 32 de 73.
Podemos anidar sentencias if-else if-else unas dentro de otras. Esto nos permite crear estructuras de toma de decisiones jerárquicas.
Tengan en cuenta que las sentencias
if profundamente anidadas pueden hacer que el código sea más difícil de leer y mantener.Por ejemplo:
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");
}
Puede anidarse infinitamente:
if (condition1) {
if (condition2) {
if (condition3) {
// runs only when condition1, condition2 and condition3 are all true
...
}
}
}Desafío
PrincipianteCrea un programa que verifique si alguien puede subir a una montaña rusa. Los requisitos son:
- Debe tener al menos 12 años
- Debe medir más de 150cm
- Si cumplen ambos requisitos pero tienen menos de 15, necesitan supervisión de un adulto
Imprime exactamente estos mensajes para cada caso:
- Si es demasiado joven:
Sorry, you're too young - Si no mide lo suficiente:
Sorry, you're not tall enough - Si tiene menos de 15 y no hay adulto:
Sorry, you need an adult with you - Si tiene menos de 15 con adulto:
You can ride with adult supervision! - Si tiene 15 o más y mide lo suficiente:
You can ride by yourself!
Hoja de referencia
Puedes anidar sentencias if-else if-else una dentro de la otra para crear estructuras de toma de decisiones jerá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");
}
La anidación se puede hacer infinitamente:
if (condition1) {
if (condition2) {
if (condition3) {
// if condition1, condition2 and condition3 are true
...
}
}
}Nota: Las sentencias if profundamente anidadas pueden hacer que el código sea más difícil de leer y mantener.
Pruébalo tú mismo
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int age = scanner.nextInt(); // No cambies esta línea
int height = scanner.nextInt(); // No cambies esta línea
boolean hasAdult = scanner.nextBoolean(); // No cambies esta línea
// Escribe tu código debajo
scanner.close();
}
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones 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