Saltar al contenido principal

Estructuras de control

Las estructuras de control permiten tomar decisiones y ejecutar bloques de código en función de condiciones, así como repetir bloques de código mientras se cumplan ciertas reglas. En esta sección, veremos cómo utilizar las principales estructuras de control: condicionales, bucles y sentencias de control.

Estructuras condicionales

Las estructuras condicionales permiten que el programa tome decisiones en función de una expresión booleana (que puede evaluarse como verdadera o falsa). En JavaScript, las más comunes son if, else, else if, y el operador ternario.

if

La estructura if evalúa una condición, y si esta es verdadera, ejecuta el bloque de código asociado.

let numero = 10;

if (numero > 5) {
console.log("El número es mayor que 5");
}

else

El bloque else se ejecuta si la condición del if es falsa.

let numero = 3;

if (numero > 5) {
console.log("El número es mayor que 5");
} else {
console.log("El número es menor o igual a 5");
}

else if

La estructura else if permite verificar múltiples condiciones de forma secuencial.

let numero = 7;

if (numero > 10) {
console.log("El número es mayor que 10");
} else if (numero > 5) {
console.log("El número está entre 6 y 10");
} else {
console.log("El número es menor o igual a 5");
}

Operador ternario

El operador ternario es una forma compacta de escribir una condición if-else.

let numero = 8;
let resultado = (numero > 5) ? "Mayor que 5" : "Menor o igual a 5";
console.log(resultado);

Estructuras repetitivas

Las estructuras repetitivas o bucles permiten repetir un bloque de código varias veces, hasta que una condición deje de cumplirse.

for

El bucle for es ideal para iteraciones en las que conocemos el número de repeticiones de antemano.

for (let i = 0; i < 5; i++) {
console.log(i); // Imprime los números del 0 al 4
}

for...in

El bucle for...in itera sobre las claves (propiedades) de un objeto o los índices de un array. Útil cuando quieres acceder a la clave, no al valor directamente.

const frutas = ["manzana", "pera", "naranja"];

for (let indice in frutas) {
console.log(indice); // 0, 1, 2
console.log(frutas[indice]); // manzana, pera, naranja
}

// Con objeto
const persona = { nombre: "Ana", edad: 25 };
for (let clave in persona) {
console.log(clave, persona[clave]); // nombre Ana, edad 25
}

for...of

El bucle for...of itera sobre los valores de un iterable (arrays, strings, maps, sets). Más limpio que for clásico para arrays, no necesitas índices.

const frutas = ["manzana", "pera", "naranja"];

for (let fruta of frutas) {
console.log(fruta); // manzana, pera, naranja
}

// Con string
const saludo = "Hola";
for (let letra of saludo) {
console.log(letra); // H, o, l, a
}

while

El bucle while ejecuta el bloque de código mientras la condición se mantenga verdadera.

let contador = 0;

while (contador < 5) {
console.log(contador);
contador++;
}

do-while

El bucle do-while es similar al while, pero siempre ejecuta el bloque de código al menos una vez, ya que la condición se evalúa después de la ejecución.

let contador = 0;

do {
console.log(contador);
contador++;
} while (contador < 5);

Sentencias de control

Las sentencias de control permiten modificar el comportamiento de los bucles, saliendo de ellos o saltando iteraciones.

break

La sentencia break interrumpe la ejecución de un bucle, terminándolo de inmediato.

for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // Sale del bucle cuando i es igual a 5
}
console.log(i);
}

continue

La sentencia continue salta a la siguiente iteración del bucle, omitiendo el código restante de la iteración actual.

for (let i = 0; i < 10; i++) {
if (i % 2 === 0) {
continue; // Salta las iteraciones cuando i es un número par
}
console.log(i);
}