Módulo 4 · Control de Flujo II: Bucles

El bucle for

El bucle for repite código un número conocido de veces. Sus tres partes, cómo se recorre una lista y por qué la condición debe ser menor que length.

Definición rápida

El bucle for repite un bloque de código mientras se cumple una condición, controlando la repetición con una variable contador.

El bucle for repite un bloque de código un número controlado de veces. Es la herramienta con la que se recorren arrays y se procesan listas de datos: sin bucles, cualquier programa que trabaje con varios datos se convierte en copiar y pegar.

Las tres partes del for

for (let i = 0; i < 5; i++) {
  console.log(i);   // 0, 1, 2, 3, 4
}

Entre paréntesis hay tres instrucciones separadas por punto y coma:

  1. Inicialización (let i = 0): se ejecuta una sola vez, antes de empezar.
  2. Condición (i < 5): se comprueba antes de cada vuelta; si es falsa, el bucle termina.
  3. Actualización (i++): se ejecuta al final de cada vuelta.

La variable i se llama contador o índice, y empieza en 0 porque las posiciones de un array empiezan en 0.

Recorrer una lista

const ventas = [120, 80, 200];

for (let i = 0; i < ventas.length; i++) {
  console.log(ventas[i]);
}

La condición correcta es i < ventas.length. Con <= el bucle da una vuelta extra, ventas[3] vale undefined y cualquier cálculo se convierte en NaN. Es, con diferencia, el error más frecuente de los primeros bucles.

Si no necesitas el índice, la versión más segura es:

for (const venta of ventas) {
  console.log(venta);
}

Variantes del avance

La actualización no tiene que ser i++:

for (let i = 10; i > 0; i--) { }      // hacia atrás
for (let i = 0; i < 10; i += 2) { }   // de dos en dos

Y dentro del cuerpo, break sale del bucle inmediatamente y continue salta a la vuelta siguiente.

El bucle infinito

for (let i = 0; i < 5; ) {   // i nunca cambia
  console.log(i);
}

Si la condición nunca llega a ser falsa, el bucle no termina y la página se congela. Las causas típicas son olvidar la actualización o avanzar en la dirección contraria a la condición.

Errores típicos

  • i <= length en lugar de i < length.
  • Declarar dentro del bucle la variable donde acumulas el resultado: se reinicia en cada vuelta y el total sale mal.
  • Modificar la lista mientras la recorres: añadir o quitar elementos descuadra los índices.

Dónde se practica

Escribir un for es fácil; lo que cuesta es decidir qué se acumula, dónde se declara y cuándo hay que salir, sobre todo cuando hay que combinarlo con condicionales o recorrer datos con forma. Eso es el módulo 4 del curso, donde cada ejercicio se corrige automáticamente contra casos como la lista vacía o la de un solo elemento. Puedes ver la secuencia completa en el temario.

Preguntas frecuentes

¿Cuándo uso for y cuándo while?

for cuando sabes cuántas veces vas a repetir, por ejemplo recorrer una lista. while cuando dependes de una condición que puede cambiar en cualquier momento.

¿Qué diferencia hay entre for y for...of?

for te da el índice y control total sobre el avance; for...of te entrega directamente cada elemento y evita errores de rango. Usa for...of cuando no necesites la posición.

¿Por qué mi bucle da undefined en la última vuelta?

Porque la condición es i <= array.length en lugar de i < array.length: entra una vez más de las que hay elementos y accede a una posición inexistente.