Menu
Coddy logo textTech

¿Qué es la iteración?

En programación, la iteración consiste en repetir un conjunto de instrucciones, normalmente con un bucle, hasta que se cumple una condición o se han procesado todos los elementos de una colección. Cada pasada por las instrucciones repetidas también se llama iteración.

Por Kevin Spektor, Cofundador y CTO

Actualizado el 24 de septiembre de 2026

Un programa que envía un correo de recordatorio a 10.000 usuarios no contiene 10.000 copias del código de envío. Contiene ese código una sola vez, dentro de un bucle, y el bucle lo ejecuta una vez por usuario. Cada ejecución es una iteración, y el bucle en su conjunto es la forma en que el programa itera sobre sus usuarios.

Cómo funciona la iteración, paso a paso

Todo bucle sigue el mismo ciclo:

  1. Comprobar. Evalúa la condición del bucle, que es un booleano: ¿queda otro elemento, o el contador sigue por debajo del límite?
  2. Ejecutar. Si la respuesta es verdadera, ejecuta una vez el cuerpo del bucle.
  3. Actualizar. Pasa al siguiente elemento o cambia el contador.
  4. Repetir. Vuelve al paso 1. Cuando la comprobación da falso, el programa sigue con el código que hay después del bucle.

Aquí el cuerpo se ejecuta cinco veces, y cada iteración suma el siguiente número a un total acumulado:

iteration 1 total is now 1
iteration 2 total is now 3
iteration 3 total is now 6
iteration 4 total is now 10
iteration 5 total is now 15
Done: 15

La variable total vive fuera del bucle, así que conserva su valor de una iteración a la siguiente. Ese patrón, una variable asignada antes del bucle y actualizada dentro de él, se llama acumulador, y aparece en casi todos los bucles que calculan algo.

Bucles que cuentan y bucles con condición

Hay dos tipos de iteración. La iteración definida se ejecuta un número conocido de veces: una vez por cada elemento de una lista, o una vez por cada número del 1 al 5. El bucle for de Python está hecho para esto, a menudo junto con range().

La iteración indefinida se repite hasta que ocurre algo, y el número de pasadas no se conoce de antemano. Un bucle while encaja en este caso:

8 years, balance 214.36

Un dinero que crece un 10 % al año tarda 8 años en duplicarse. El programa lo averiguó iterando, no resolviendo una ecuación. Las guías de bucles for y bucles while cubren los dos en Python.

Iterar sobre una colección

La mayoría de los bucles recorren una colección: los elementos de un array, los caracteres de un string, las líneas de un archivo. El bucle for de Python te da cada elemento directamente, y enumerate() añade su posición:

0 apple
1 banana
2 cherry

Por debajo, for pide a la colección un iterador con iter() y después llama a next() sobre él una vez por iteración. Puedes hacer tú mismo esas mismas llamadas:

red
green
blue
no more items

Sin el valor por defecto, el cuarto next() lanza StopIteration. Esa excepción es la señal que usa un bucle for para saber que la colección se ha terminado.

Otros lenguajes escriben la misma idea de otra forma. C cuenta con un índice, mientras que Java y JavaScript también tienen un bucle que te da cada elemento:

for (int i = 0; i < 3; i++) {
    printf("%s\n", colors[i]);
}
for (String color : colors) {
    System.out.println(color);
}
for (const color of colors) {
    console.log(color);
}

Iteración vs recursión

La recursión es la otra forma de repetir trabajo: una función se llama a sí misma con una versión más pequeña del problema hasta llegar a un caso que puede responder directamente. Todo lo que se escribe con una se puede escribir con la otra, pero se comportan de forma distinta:

IteraciónRecursión
Cómo repiteUn bucle salta de vuelta a su inicioUna función se llama a sí misma
Cuándo se detieneLa condición del bucle se vuelve falsaSe llega a un caso base
MemoriaLa misma cantidad para cualquier número de pasadasUn marco de pila por cada llamada todavía abierta
Fallo típicoUn bucle infinitoDesbordamiento de pila (RecursionError en Python)
Buen usoListas, contadores, repetir hasta una condiciónÁrboles, datos anidados, divide y vencerás

La fila de la memoria importa en la práctica. Python permite unas 1.000 llamadas anidadas por defecto, así que una suma recursiva de 5.000 números falla donde un bucle no tiene ningún problema:

5050 5050
12502500
sum_recursive(5000) failed: RecursionError

La visualización de la recursión muestra paso a paso cómo crece y se reduce la pila de llamadas.

Errores comunes

El bucle infinito. Un bucle while cuya condición nunca se vuelve falsa se ejecuta hasta que detienes el programa. La causa habitual es olvidar el paso de actualización, por ejemplo omitir count = count - 1.

Pasarse por uno. range(1, 5) da 1, 2, 3 y 4, no 5, porque el valor final queda excluido. Un bucle que se ejecuta una vez de más o de menos sigue funcionando sin error y da una respuesta equivocada, lo que es un error lógico.

Cambiar una lista mientras la recorres. Quitar elementos de la lista sobre la que estás iterando hace que el bucle se salte elementos:

[1, 2, 3]

Un 2 sobrevivió, porque al quitar el primer 2 el segundo se desplazó a una posición que el bucle ya había pasado. Construye una lista nueva en su lugar: numbers = [n for n in numbers if n != 2].

Qué leer después

Los bucles recorren colecciones, así que qué es un array es la página que mejor la acompaña, y qué es un booleano explica las comprobaciones de verdadero o falso que deciden cuándo se detiene un bucle. Cuando un bucle da un resultado equivocado sin ningún mensaje de error, lee qué es un error lógico. Para practicar escribiendo bucles, empieza el curso de Python o prueba los ejemplos de arriba en el playground de Python.

Preguntas frecuentes

¿Qué es un ejemplo de iteración?
Un bucle for que imprime cada nombre de una lista de 100 usuarios hace 100 iteraciones, una por nombre. Un bucle while que sigue pidiendo una contraseña hasta que se escribe la correcta también es iteración, aunque el número de pasadas no se conoce de antemano.
¿Qué es mejor, la recursión o la iteración?
Ninguna es mejor en general. La iteración usa una cantidad fija de memoria y suele ser más rápida para repeticiones sencillas, como sumar una lista o contar. La recursión da un código más corto y claro para problemas recursivos por naturaleza, como recorrer un árbol de carpetas, pero cada llamada usa memoria de la pila, y una recursión muy profunda falla en lenguajes como Python.
¿La iteración es lo mismo que un bucle?
Casi. Un bucle es la construcción del lenguaje, como for o while, y la iteración es la repetición que realiza. Cada pasada por el cuerpo del bucle también se llama iteración, así que un bucle que se ejecuta 5 veces hace 5 iteraciones.
¿Qué diferencia hay entre un sprint y una iteración?
En la gestión de proyectos de software, una iteración es un periodo fijo, normalmente de una a cuatro semanas, en el que un equipo planifica, construye y revisa una parte de software que funciona. Scrum llama sprint a ese periodo, así que en la práctica las dos palabras significan lo mismo. Es un significado distinto del de iteración en el código.
¿Qué significa iterable?
Un iterable es cualquier objeto que puedes recorrer con for, como una lista, un string, un diccionario, un archivo o un range. En Python, un objeto es iterable si iter() puede obtener un iterador a partir de él. Los enteros no son iterables, y por eso for x in 5: lanza un TypeError.
Coddy programming languages illustration

Aprende a programar con Coddy

COMENZAR