¿Qué son los bucles en programación?
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.
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.
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
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.
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.
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 →