CAP 03 · LEC 01·Control de flujo
if / else / else if: tomar decisiones en el código
El control de flujo es cómo el programa decide qué hacer. if/else es la estructura más fundamental y la más usada — conócela bien.
¿Encontraste un error o algo que mejorar?Editá esta lección en GitHub →
La instrucción if
const edad = 20;
if (edad >= 18) {
console.log("Acceso permitido");
}
// Si la condición es false, el bloque se saltaconst edad: number = 20;
if (edad >= 18) {
console.log("Acceso permitido");
}Salida
Acceso permitidoif / else
const hora = 14;
if (hora < 12) {
console.log("Buenos días");
} else {
console.log("Buenas tardes o noches");
}const hora: number = 14;
if (hora < 12) {
console.log("Buenos días");
} else {
console.log("Buenas tardes o noches");
}Salida
Buenas tardes o nocheselse if: múltiples ramas
const nota = 75;
if (nota >= 90) {
console.log("Sobresaliente");
} else if (nota >= 70) {
console.log("Notable");
} else if (nota >= 50) {
console.log("Aprobado");
} else {
console.log("Suspenso");
}const nota: number = 75;
if (nota >= 90) {
console.log("Sobresaliente");
} else if (nota >= 70) {
console.log("Notable");
} else if (nota >= 50) {
console.log("Aprobado");
} else {
console.log("Suspenso");
}Salida
NotableCondiciones con valores no booleanos
Cualquier valor puede usarse en una condición. JavaScript lo convierte automáticamente a boolean.
const nombre = ""; // falsy: string vacío
if (nombre) {
console.log(`Hola, ${nombre}`);
} else {
console.log("Nombre vacío");
}
// → "Nombre vacío"
// Patrón común: verificar existencia
const usuario = null;
if (usuario) {
console.log(usuario.nombre);
}
// No ejecuta nada, evita el errorfunction saludar(nombre: string | null): void {
if (nombre) {
// TypeScript sabe que aquí nombre es string (no null)
console.log(nombre.toUpperCase()); // ✅
}
}Condicionales en una línea
Para ejecutar una sola instrucción puedes omitir las llaves. Sin embargo, es una mala práctica — siempre usa llaves para evitar bugs:
// ❌ Evitar: sin llaves
if (activo) console.log("activo");
// ✅ Siempre con llaves
if (activo) {
console.log("activo");
}
// ✅ O usa el operador && para "ejecutar si es truthy"
activo && console.log("activo");