Saltar al contenido principal
ByteNova
Programación

¿Qué son los bucles en programación?

Publicado por ByteNova · · Actualizado el

En este artículo aprenderás:

Qué son los bucles, cómo funcionan for y while, cómo utilizar range(), break y continue, y cómo prevenir bucles infinitos.

Muchos programas necesitan repetir una misma tarea varias veces. En lugar de escribir las mismas instrucciones una y otra vez, podemos utilizar bucles para automatizar esas repeticiones y controlar cuándo deben comenzar o terminar.

¿Qué es un bucle?

Un bucle es una estructura de control que permite ejecutar un bloque de instrucciones varias veces.

La repetición puede depender de una cantidad definida de elementos, de un rango de números o de una condición que debe mantenerse verdadera.

Imagina que quieres mostrar los números del 1 al 100. Podrías escribir 100 instrucciones print(), pero sería repetitivo y difícil de mantener.

Con un bucle podemos expresar la misma idea utilizando unas pocas líneas:

for numero in range(1, 101):
    print(numero)

Esta capacidad de repetir instrucciones aparece en tareas como:

  • Recorrer una lista de usuarios.
  • Sumar una colección de números.
  • Procesar productos de una tienda.
  • Leer datos uno por uno.
  • Intentar una operación hasta que se cumpla una condición.

Bucle for

El bucle for se utiliza para recorrer una secuencia de elementos o realizar una serie de iteraciones.

Un ejemplo básico sería:

for numero in range(1, 6):
    print(numero)

El resultado es:

1
2
3
4
5

En cada iteración, la variable numero recibe un valor diferente del rango.

Iteración

Cada vez que el bloque del bucle se ejecuta una vez, hablamos de una iteración.

Cómo funciona range()

range() genera una secuencia de números que suele utilizarse junto con for.

Un solo argumento

for numero in range(5):
    print(numero)

El resultado es:

0
1
2
3
4

Python empieza en 0 y se detiene antes de llegar a 5.

Inicio y fin

for numero in range(1, 6):
    print(numero)

En este caso comienza en 1 y termina antes de 6.

Utilizar un paso

También podemos indicar cuánto debe aumentar el valor en cada iteración.

for numero in range(0, 11, 2):
    print(numero)

El resultado será:

0
2
4
6
8
10

Recorrer colecciones con for

for no sirve solamente para números. También puede recorrer listas, cadenas de texto y otras colecciones.

Supongamos que tenemos una lista de tecnologías:

tecnologias = [
    "HTML",
    "CSS",
    "JavaScript",
    "Python"
]

for tecnologia in tecnologias:
    print(tecnologia)

En cada iteración, tecnologia representa un elemento diferente de la lista.

Esto es muy útil porque no necesitamos conocer manualmente cuántos elementos existen ni acceder a ellos uno por uno.

Recorrer una cadena de texto

palabra = "Nova"

for letra in palabra:
    print(letra)

El bucle recorrerá cada carácter:

N
o
v
a

Bucle while

Un bucle while ejecuta instrucciones mientras una condición siga siendo verdadera.

contador = 1

while contador <= 5:
    print(contador)
    contador += 1

El programa comienza con contador = 1. Después de cada iteración se aumenta su valor.

Cuando contador llega a 6, la condición contador <= 5 deja de cumplirse y el bucle termina.

Cuándo resulta útil while

while es especialmente útil cuando no conocemos de antemano la cantidad exacta de repeticiones.

Por ejemplo, podríamos pedir una contraseña hasta que el usuario escriba la correcta:

clave = ""

while clave != "1234":
    clave = input("Escribe la clave: ")

print("Acceso permitido")

No sabemos cuántos intentos necesitará el usuario, por lo que while encaja mejor que un número fijo de repeticiones.

Detener un bucle con break

break permite terminar un bucle inmediatamente, incluso si todavía podría continuar.

for numero in range(1, 11):
    if numero == 5:
        break

    print(numero)

El resultado será:

1
2
3
4

Cuando numero vale 5, se ejecuta break y el bucle termina completamente.

Ejemplo de búsqueda

productos = [
    "Teclado",
    "Mouse",
    "Monitor"
]

for producto in productos:
    if producto == "Mouse":
        print("Producto encontrado")
        break

Una vez encontrado el elemento que necesitamos, puede no tener sentido continuar recorriendo la lista.

Saltar una iteración con continue

continue no termina el bucle. Simplemente salta el resto de la iteración actual y pasa a la siguiente.

for numero in range(1, 6):
    if numero == 3:
        continue

    print(numero)

El resultado será:

1
2
4
5

Cuando el valor es 3, Python no ejecuta el print() de esa iteración.

Diferencia rápida

break termina el bucle completo. continue solamente omite la iteración actual.

Bucles anidados

Un bucle puede ejecutarse dentro de otro. A esto se le conoce como un bucle anidado.

for fila in range(1, 4):
    for columna in range(1, 3):
        print(f"Fila {fila}, columna {columna}")

Por cada valor del bucle exterior, el bucle interior realiza todas sus iteraciones.

Los bucles anidados pueden utilizarse para trabajar con tablas, matrices o combinaciones de elementos.

Sin embargo, conviene utilizarlos con cuidado porque muchas repeticiones anidadas pueden aumentar el trabajo que realiza el programa.

¿Qué es un bucle infinito?

Un bucle infinito ocurre cuando la condición de salida nunca llega a cumplirse.

Observa este código:

contador = 1

while contador <= 5:
    print(contador)

El valor de contador nunca cambia. Por lo tanto, contador <= 5 siempre será verdadero.

Una corrección sería:

contador = 1

while contador <= 5:
    print(contador)
    contador += 1
Antes de ejecutar un while

Pregúntate qué parte del programa hará que la condición deje de ser verdadera.

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

No existe una regla absoluta, pero podemos utilizar una guía sencilla.

Utiliza for cuando:

  • Necesitas recorrer una lista.
  • Quieres recorrer una cadena de texto.
  • Conoces un rango de valores.
  • La repetición depende de una colección.

Utiliza while cuando:

  • La repetición depende de una condición.
  • No sabes cuántas iteraciones serán necesarias.
  • Quieres continuar hasta que ocurra determinado evento.

Ejemplo: recorrer 20 productos encaja naturalmente con for. Pedir una contraseña hasta que sea correcta encaja mejor con while.

Ejemplo práctico: calcular el total de una compra

Supongamos que tenemos una lista con los precios de varios productos:

precios = [
    15000,
    8000,
    22000,
    5000
]

total = 0

for precio in precios:
    total += precio

print(f"Total: ₡{total}")

Inicialmente total vale 0. En cada iteración agregamos el precio actual.

El recorrido ocurre así:

  • 0 + 15000 = 15000
  • 15000 + 8000 = 23000
  • 23000 + 22000 = 45000
  • 45000 + 5000 = 50000

Finalmente el programa muestra:

Total: ₡50000

Este patrón aparece constantemente al trabajar con listas de datos.

Errores comunes al utilizar bucles

Crear un bucle infinito accidentalmente

En un while, asegúrate de que algo pueda modificar la condición.

Modificar incorrectamente un contador

Un contador que aumenta o disminuye de forma equivocada puede hacer que el bucle termine demasiado pronto o nunca termine.

Confundir break con continue

Recuerda que break sale completamente del bucle y continue solo salta una iteración.

Repetir trabajo innecesario

Si una operación no cambia durante las iteraciones, quizá no sea necesario ejecutarla dentro del bucle cada vez.

Usar while cuando for sería más claro

Podemos recorrer una lista con un contador manual, pero normalmente un for resulta más legible:

nombres = ["Ana", "Carlos", "Luis"]

for nombre in nombres:
    print(nombre)

La claridad también es importante al programar.

Compruébalo tú mismo

Crea un programa que utilice un bucle for para mostrar los números del 1 al 10 y calcular la suma de todos ellos.

Intenta resolverlo antes de ver la solución.

Ver una posible solución
suma = 0

for numero in range(1, 11):
    print(numero)
    suma += numero

print(f"Suma total: {suma}")

En cada iteración, la variable numero recibe un valor entre 1 y 10. Después ese valor se agrega a suma.

El resultado final de la suma será 55.

Reto adicional

Modifica el programa para sumar únicamente los números pares entre 1 y 20.

Preguntas frecuentes

¿Cuál es la diferencia entre for y while?

for suele utilizarse para recorrer elementos o realizar una cantidad determinada de iteraciones. while se repite mientras una condición siga siendo verdadera.

¿Qué es un bucle infinito?

Es un bucle que no alcanza una condición de salida y continúa ejecutándose indefinidamente. Suele ocurrir cuando la condición de un while nunca cambia.

¿Para qué sirven break y continue?

break permite terminar un bucle antes de tiempo. continue permite saltar la iteración actual y continuar con la siguiente.

Conclusión

Los bucles permiten automatizar tareas repetitivas y recorrer conjuntos de datos sin escribir las mismas instrucciones muchas veces.

for resulta especialmente útil para recorrer colecciones y rangos, mientras que while permite repetir acciones mientras una condición permanezca verdadera.

Comprender también range(), break, continue y los posibles bucles infinitos te dará una base sólida para combinar repeticiones con condicionales, funciones y estructuras de datos.

Artículo creado por

ByteNova

Proyecto educativo creado por Dylan Estrada. ByteNova publica contenido sobre programación, desarrollo web, inteligencia artificial y ciberseguridad con un enfoque claro para principiantes y revisión editorial continua.

Conoce más sobre ByteNova →