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);
}