If - Else anidado
Parte de la sección Fundamentos del Journey de C de Coddy. Lección 31 de 63.
Podemos anidar sentencias if-else unas dentro de otras. Esto nos permite crear estructuras jerárquicas para la toma de decisiones.
Por ejemplo:
if (age > 18) {
if (hasLicense) {
printf("You can drive");
} else {
printf("Get a license first");
}
} else {
printf("Too young to drive");
}Se puede anidar infinitamente:
if (condition1) {
if (condition2) {
if (condition3) {
// si condition1, condition2 y condition3 son verdaderas
}
}
}Sin llaves, un else se empareja con el if más cercano que tenga encima y que aún no tenga un else:
if (age > 18)
if (hasLicense)
printf("You can drive");
else
printf("Get a license first");Aquí, el else pertenece a if (hasLicense), independientemente de la indentación. Usa llaves para que el emparejamiento quede claro.
Desafío
FácilCrea un programa que compruebe si alguien puede subir a una montaña rusa. Los requisitos son:
- Debe tener al menos 12 años
- Debe medir más de 150 cm
- Si cumple ambos requisitos, pero tiene menos de 15 años, necesita la supervisión de un adulto
Imprime exactamente estos mensajes para cada caso:
- Si es demasiado joven:
Sorry, you are too young - Si no mide lo suficiente:
Sorry, you are not tall enough - Si tiene menos de 15 años y no hay un adulto:
Sorry, you need an adult with you - Si tiene menos de 15 años y hay un adulto:
You can ride with adult supervision! - Si tiene 15 años o más y mide lo suficiente:
You can ride by yourself!
Pruébalo tú mismo
#include <stdio.h>
int main() {
int age, height;
int hasAdult;
scanf("%d %d %d", &age, &height, &hasAdult); // No cambies esta línea
// Escribe tu código a continuación
return 0;
}Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Control de flujo
Sentencia ifIf - ElseElse-IfCaso switchOperador condicional ternarioDesafío de repasoIf - Else anidado2Variables
Tipos de datosEnteroFloat - DoubleCaracteresBooleanosConstantesConceptos básicos de printfReglas para nombrar variablesConversión de tipos, parte 1Conversión de tipos, parte 2Desafío de repaso3Operadores
Operadores aritméticosOperador móduloIncremento/DecrementoOperadores de asignaciónOperadores relacionalesOperadores lógicos Parte 1Operadores lógicos Parte 2Operadores lógicos Parte 3Desafío de repasoPractica por tu cuenta: Compilador de C online