Aprende a decidir con confianza en JavaScript usando condiciones claras. Con las sentencias if, else y else if, traduces la lógica de negocio a código: das permisos, validas acceso y ejecutas acciones según una condición. Piensa en el ejemplo cotidiano: si parece que va a llover, llevas paraguas; si no, sales sin él. Así operan estas estructuras condicionales en tu aplicación.
¿Qué son y para qué sirven if, else y else if en JavaScript?
Estas sentencias forman parte del control de flujo condicional. Evalúan una expresión y, según sea verdadera o falsa, ejecutan uno u otro bloque de código. Son ideales para reglas como edad mínima, permisos o si el usuario está logueado.
Palabras reservadas: if, else y else if no pueden usarse como nombres de variables. Evita errores de sintaxis.
Condición: expresa lo que debe cumplirse para ejecutar un bloque. Si no se cumple, else define la acción alternativa.
Bloque de código: va entre llaves. Dentro puedes poner más lógica, retornar valores o invocar funciones.
Lógica de negocio: valida reglas como mayoría de edad, permisos o estado de sesión.
Editor y archivo: organiza tu práctica en src con un archivo llamado 08-if-else.js.
¿Qué es una palabra reservada y por qué importa?
Porque activa un flujo de control. Si intentas usar if como nombre de variable, el intérprete lo tomará como sentencia condicional, no como identificador, y fallará.
¿Cómo se estructura una condición con operadores en el código?
Primero defines datos, luego comparas con operadores y ejecutas el bloque correspondiente. Ejemplo de mayoría de edad con salida por console.log:
const edad =18;if(edad >=18){console.log('eres mayor de edad');}else{console.log('eres menor de edad');}
>= (mayor o igual): valida el umbral de acceso.
console.log: muestra resultados para verificar el flujo.
Si la condición es verdadera, el primer bloque se ejecuta. Si no, corre el bloque de else.
¿Qué operadores usar para comparar números?
>=, >, <=, <: comparan magnitudes para decidir accesos o permisos.
===: igualdad estricta por tipo y valor. Útil cuando una regla requiere coincidencia exacta.
¿Cuándo usar else if y cuándo anidar condiciones?
Cuando necesitas evaluar más de una condición en orden, usa else if. Permite capturar casos intermedios antes del else. Observa cómo se priorizan reglas específicas:
const edad =18;if(edad >=19){console.log('eres mayor de edad');}elseif(edad ===18){console.log('Tienes dieciocho años');}else{console.log('eres menor de edad');}
Orden de evaluación: primero se prueba la condición más restrictiva o prioritaria. Si no se cumple, pasa a la siguiente.
Caso exacto: con === manejas el mensaje específico de “dieciocho años”.
Anidación: es posible anidar if, pero no siempre es la mejor opción. Evalúa legibilidad y mantenimiento.
Flujo de negocio: estas decisiones dirigen a áreas restringidas, otorgan permisos o niegan acceso según reglas definidas.
¿Cómo decidir la mejor estructura de condiciones?
Prioriza claridad: condiciones simples y orden lógico.
Evita anidar en exceso: usa else if cuando alcance.
Alinea las reglas con tu modelo de negocio: edad, permisos o estado de sesión.
¿Listo para practicar? Comparte en comentarios tu solución al reto y cómo aplicaste estas condiciones a tu caso de uso.
Para que el else if se cumpla en el ejemplo la condicion debe de cambiar el operador logico de >= mayor ó igual a > mayor que.
// ============================================// Reto: If, else y else if en JavaScript// ============================================// Practica el control de flujo condicional con if, else y else if.// Valida reglas de negocio como mayoría de edad, permisos y umbrales de acceso.// Ejecuta los tests con: npx vitest src/09-if-else// ============================================// --- Reto 1: Condición simple (mayor de edad) ---// Recibe "edad" (número). Retorna true si edad >= 18, false en caso contrario.// Usa if y else (o solo return de una comparación).functionesMayorDeEdad(edad){if(edad >=18){return(true);}else{return(false);}// Tu código aquí}// --- Reto 2: Mensaje según condición ---// Recibe "edad" (número). Si edad >= 18 retorna 'eres mayor de edad',// si no, retorna 'eres menor de edad'. Usa if y else con return.functionmensajeEdad(edad){if(edad >=18){return("eres mayor de edad");}else{return("eres menor de edad");}// Tu código aquí}// --- Reto 3: else if para caso exacto ---// Recibe "edad" (número). Retorna:// - 'eres mayor de edad' si edad >= 19// - 'Tienes dieciocho años' si edad === 18// - 'eres menor de edad' en cualquier otro caso// Usa if, else if y else. Prioriza la condición más restrictiva primero.functionmensajeEdadDetallado(edad){if(edad >=19){return("eres mayor de edad");}elseif(edad ===18){return("Tienes dieciocho años");}else{return("eres menor de edad");}// Tu código aquí}// --- Reto 4: Validar umbral con >= ---// Recibe "valor" (número) y "minimo" (número).// Retorna true si valor >= minimo, false en caso contrario.functioncumpleMinimo(valor, minimo){if( valor >= minimo){return(true);}else{return(false);}// Tu código aquí}// --- Reto 5: Nivel de acceso por edad ---// Recibe "edad" (número). Retorna un string según el rango:// - 'adulto' si edad >= 19// - 'dieciocho' si edad === 18// - 'menor' si edad < 18// Usa if, else if y else con comparaciones (>=, ===, <).functionnivelAcceso(edad){if(edad >=19){return('adulto');}elseif(edad ===18){return('dieciocho');}else{return('menor');}// Tu código aquí}// --- Reto 6: Acceso con condición (edad o permiso) ---// Recibe "edad" (número) y "tienePermisoEspecial" (booleano).// Retorna true si la persona puede entrar: ya sea edad >= 18 O tiene permiso especial.// Retorna false en caso contrario.functionpuedeEntrar(edad, tienePermisoEspecial){if(edad >=18|| tienePermisoEspecial){return(true);}else{return(false);}// Tu código aquí}module.exports={ esMayorDeEdad, mensajeEdad, mensajeEdadDetallado, cumpleMinimo, nivelAcceso, puedeEntrar,};
// ============================================
// Reto: If, else y else if en JavaScript
// ============================================
// Practica el control de flujo condicional con if, else y else if.
// Valida reglas de negocio como mayoría de edad, permisos y umbrales de acceso.
// Ejecuta los tests con: npx vitest src/09-if-else
// ============================================
// --- Reto 1: Condición simple (mayor de edad) ---
// Recibe "edad" (número). Retorna true si edad >= 18, false en caso contrario.
// Usa if y else (o solo return de una comparación).
function esMayorDeEdad(edad) {
if (edad >= 18) {
return (true);
}
else {
return (false);
} // Tu código aquí
}
// --- Reto 2: Mensaje según condición ---
// Recibe "edad" (número). Si edad >= 18 retorna 'eres mayor de edad',
// si no, retorna 'eres menor de edad'. Usa if y else con return.
function mensajeEdad(edad) {
if (edad >= 18) {
return ("eres mayor de edad");
}
else {
return ("eres menor de edad");
} // Tu código aquí
}
// --- Reto 3: else if para caso exacto ---
// Recibe "edad" (número). Retorna:
// - 'eres mayor de edad' si edad >= 19
// - 'Tienes dieciocho años' si edad === 18
// - 'eres menor de edad' en cualquier otro caso
// Usa if, else if y else. Prioriza la condición más restrictiva primero.
function mensajeEdadDetallado(edad) {
if (edad >= 19) {
return ("eres mayor de edad");
}
else if (edad === 18) {
return ("Tienes dieciocho años");
}
else {
return ("eres menor de edad");
} // Tu código aquí
}
// --- Reto 4: Validar umbral con >= ---
// Recibe "valor" (número) y "minimo" (número).
// Retorna true si valor >= minimo, false en caso contrario.
function cumpleMinimo(valor, minimo) {
if( valor >= minimo){
return (true);
}
else {
return (false);
}// Tu código aquí
}
// --- Reto 5: Nivel de acceso por edad ---
// Recibe "edad" (número). Retorna un string según el rango:
// - 'adulto' si edad >= 19
// - 'dieciocho' si edad === 18
// - 'menor' si edad < 18
// Usa if, else if y else con comparaciones (>=, ===, <).
function nivelAcceso(edad) {
if (edad >= 19) {
return ('adulto');
}
else if (edad === 18){
return ('dieciocho');
}
else{
return ('menor');
} // Tu código aquí
}
// --- Reto 6: Acceso con condición (edad o permiso) ---
// Recibe "edad" (número) y "tienePermisoEspecial" (booleano).
// Retorna true si la persona puede entrar: ya sea edad >= 18 O tiene permiso especial.
// Retorna false en caso contrario.
function puedeEntrar(edad, tienePermisoEspecial) {
if (edad >= 18 || tienePermisoEspecial) {
return (true);
}
else {
return (false);
} // Tu código aquí
}
module.exports = {
esMayorDeEdad,
mensajeEdad,
mensajeEdadDetallado,
cumpleMinimo,
nivelAcceso,
puedeEntrar,
};
Comparto mi código de estos ejercicios
Sé que se puede hacer más corto pero por ser fundamentos quise hacerlo más desarrollado
// ============================================// Reto: If, else y else if en JavaScript// ============================================// Practica el control de flujo condicional con if, else y else if.// Valida reglas de negocio como mayoría de edad, permisos y umbrales de acceso.// Ejecuta los tests con: npx vitest src/09-if-else// ============================================// --- Reto 1: Condición simple (mayor de edad) ---// Recibe "edad" (número). Retorna true si edad >= 18, false en caso contrario.// Usa if y else (o solo return de una comparación).functionesMayorDeEdad(edad){// Tu código aquíif(edad>=18){returntrue;}else{returnfalse;}}console.log(esMayorDeEdad(18));// --- Reto 2: Mensaje según condición ---// Recibe "edad" (número). Si edad >= 18 retorna 'eres mayor de edad',// si no, retorna 'eres menor de edad'. Usa if y else con return.functionmensajeEdad(edad){// Tu código aquíif(edad>=18){return'eres mayor de edad';}else{return'eres menor de edad';}}console.log(mensajeEdad(17));// --- Reto 3: else if para caso exacto ---// Recibe "edad" (número). Retorna:// - 'eres mayor de edad' si edad >= 19// - 'Tienes dieciocho años' si edad === 18// - 'eres menor de edad' en cualquier otro caso// Usa if, else if y else. Prioriza la condición más restrictiva primero.functionmensajeEdadDetallado(edad){// Tu código aquíif(edad>=19){return'eres mayor de edad';}elseif(edad===18){return'Tienes dieciocho años';}else{return'eres menor de edad'}}console.log(mensajeEdadDetallado(16));// --- Reto 4: Validar umbral con >= ---// Recibe "valor" (número) y "minimo" (número).// Retorna true si valor >= minimo, false en caso contrario.functioncumpleMinimo(valor, minimo){// Tu código aquíif(valor>=minimo){returntrue;}else{returnfalse;}}console.log(cumpleMinimo(19,18));// --- Reto 5: Nivel de acceso por edad ---// Recibe "edad" (número). Retorna un string según el rango:// - 'adulto' si edad >= 19// - 'dieciocho' si edad === 18// - 'menor' si edad < 18// Usa if, else if y else con comparaciones (>=, ===, <).functionnivelAcceso(edad){// Tu código aquíif(edad>=19){return'adulto'}elseif(edad===18){return'dieciocho';}else{return'menor';}}console.log(nivelAcceso(16));// --- Reto 6: Acceso con condición (edad o permiso) ---// Recibe "edad" (número) y "tienePermisoEspecial" (booleano).// Retorna true si la persona puede entrar: ya sea edad >= 18 O tiene permiso especial.// Retorna false en caso contrario.functionpuedeEntrar(edad, tienePermisoEspecial){// Tu código aquíif(edad || tienePermisoEspecial){returntrue;}else{returnfalse;}}console.log(puedeEntrar(16,true));module.exports={ esMayorDeEdad, mensajeEdad, mensajeEdadDetallado, cumpleMinimo, nivelAcceso, puedeEntrar,};
function isAdult(age) {
if (age >= 18) {
return true;
} else {
return false;
}
}
console.log(isAdult(20));
// --- Reto 2: Mensaje según condición ---
// Recibe "edad" (número). Si edad >= 18 retorna 'eres mayor de edad',
// si no, retorna 'eres menor de edad'. Usa if y else con return.
function mensajeEdad(edad) {
if (edad >= 18) {
return 'Eres mayor de edad.'
} else {
return 'Eres menor de edad.'
};
}
console.log(mensajeEdad(15)); // Eres menor de edad.
// --- Reto 3: else if para caso exacto ---
// Recibe "edad" (número). Retorna:
// - 'eres mayor de edad' si edad >= 19
// - 'Tienes dieciocho años' si edad === 18
// - 'eres menor de edad' en cualquier otro caso
// Usa if, else if y else. Prioriza la condición más restrictiva primero.
function mensajeEdadDetallado(edad) {
if ( edad === 18 ) {
return 'Tienes dieciocho años'
} else if ( edad >= 19) {
return 'Eres mayor de edad.'
} else {
return 'Eres menor de edad'
};
}
console.log(mensajeEdadDetallado(18));
console.log(mensajeEdadDetallado(25));
console.log(mensajeEdadDetallado(1));
// --- Reto 4: Validar umbral con >= ---
// Recibe "valor" (número) y "minimo" (número).
// Retorna true si valor >= minimo, false en caso contrario.
function cumpleMinimo(valor, minimo) {
if (valor >= minimo) {
return true
} else {
return false
};
}
console.log(cumpleMinimo(20, 15));
console.log(cumpleMinimo(15, 20));
// --- Reto 5: Nivel de acceso por edad ---
// Recibe "edad" (número). Retorna un string según el rango:
// - 'adulto' si edad >= 19
// - 'dieciocho' si edad === 18
// - 'menor' si edad < 18
// Usa if, else if y else con comparaciones (>=, ===, <).
function nivelAcceso(edad) {
if (edad >= 19) {
return 'adulto'
} else if (edad === 18) {
return 'dieciocho';
} else {
return 'menor';
}
}
console.log(nivelAcceso(19));
console.log(nivelAcceso(18));
console.log(nivelAcceso(17));
// --- Reto 6: Acceso con condición (edad o permiso) ---
// Recibe "edad" (número) y "tienePermisoEspecial" (booleano).
// Retorna true si la persona puede entrar: ya sea edad >= 18 O tiene permiso especial.
// Retorna false en caso contrario.
function puedeEntrar(edad, tienePermisoEspecial) {
if (edad >= 18 || tienePermisoEspecial === true) {
return true
} else {
return false
};
}
console.log(puedeEntrar(18, false));
console.log(puedeEntrar(17, false));
// ============================================// Reto: If, else y else if en JavaScript// ============================================// Practica el control de flujo condicional con if, else y else if.// Valida reglas de negocio como mayoría de edad, permisos y umbrales de acceso.// Ejecuta los tests con: npx vitest src/09-if-else// ============================================// --- Reto 1: Condición simple (mayor de edad) ---// Recibe "edad" (número). Retorna true si edad >= 18, false en caso contrario.// Usa if y else (o solo return de una comparación).functionesMayorDeEdad(edad){// Tu código aquíreturn edad >=18;}// --- Reto 2: Mensaje según condición ---// Recibe "edad" (número). Si edad >= 18 retorna 'eres mayor de edad',// si no, retorna 'eres menor de edad'. Usa if y else con return.functionmensajeEdad(edad){// Tu código aquíif(edad >=18){return'eres mayor de edad';}else{return'eres menor de edad';}}// --- Reto 3: else if para caso exacto ---// Recibe "edad" (número). Retorna:// - 'eres mayor de edad' si edad >= 19// - 'Tienes dieciocho años' si edad === 18// - 'eres menor de edad' en cualquier otro caso// Usa if, else if y else. Prioriza la condición más restrictiva primero.functionmensajeEdadDetallado(edad){// Tu código aquíif(edad ===18){return'Tienes dieciocho años';}elseif(edad >=19){return'eres mayor de edad';}else{return'eres menor de edad';}}// --- Reto 4: Validar umbral con >= ---// Recibe "valor" (número) y "minimo" (número).// Retorna true si valor >= minimo, false en caso contrario.functioncumpleMinimo(valor, minimo){// Tu código aquíreturn valor >= minimo;}// --- Reto 5: Nivel de acceso por edad ---// Recibe "edad" (número). Retorna un string según el rango:// - 'adulto' si edad >= 19// - 'dieciocho' si edad === 18// - 'menor' si edad < 18// Usa if, else if y else con comparaciones (>=, ===, <).functionnivelAcceso(edad){// Tu código aquíif(edad ===18){return'dieciocho';}elseif(edad >=19){return'adulto';}elseif(edad <18){return'menor';}}// --- Reto 6: Acceso con condición (edad o permiso) ---// Recibe "edad" (número) y "tienePermisoEspecial" (booleano).// Retorna true si la persona puede entrar: ya sea edad >= 18 O tiene permiso especial.// Retorna false en caso contrario.functionpuedeEntrar(edad, tienePermisoEspecial){// Tu código aquíif(edad >=18|| tienePermisoEspecial){returntrue;}else{returnfalse;}}module.exports={ esMayorDeEdad, mensajeEdad, mensajeEdadDetallado, cumpleMinimo, nivelAcceso, puedeEntrar,};