Ir al contenido

Control de bucles

Un bucle no siempre recorre todo su camino de la misma forma. A veces conviene detenerlo apenas ocurre algo importante. En otras ocasiones, interesa ignorar un caso puntual y continuar con el siguiente. También puede ser útil distinguir entre un ciclo que terminó “normalmente” y otro que fue interrumpido antes de tiempo. Para expresar esas diferencias, Python incorpora herramientas específicas de control dentro de los bucles.

Comprender cómo break, continue y else permiten modificar el flujo de un bucle en Python para resolver recorridos, búsquedas y validaciones con mayor precisión.

Cuando se trabaja con un for o un while, lo habitual es que el ciclo siga su recorrido natural:

  • for avanza por todos los elementos de la secuencia
  • while repite mientras su condición siga siendo verdadera

Sin embargo, muchos problemas requieren un control más fino. Puede ser necesario:

  • detener el ciclo al encontrar un valor
  • saltar una iteración que no interesa procesar
  • ejecutar una acción solo si el bucle terminó sin interrupciones

En Python, ese ajuste del recorrido se expresa principalmente con estas construcciones:

ConstrucciónTipoFunción principal
breakSentenciaTermina el bucle de inmediato
continueSentenciaOmite el resto de la iteración actual
elseCláusulaSe ejecuta si el bucle termina sin break

La sentencia break termina de inmediato el bucle más cercano en el que aparece escrita. Cuando Python la ejecuta, abandona el ciclo y continúa con la primera instrucción que viene después.

for numero in range(1, 6):
if numero == 4:
break
print(numero)
print("Fin del recorrido")

Aquí el ciclo comienza recorriendo los números del 1 al 5, pero no llega hasta el final. En cuanto numero vale 4, se ejecuta break y el recorrido se interrumpe.

1
2
3
Fin del recorrido

Este comportamiento resulta útil cuando el programa ya encontró lo que buscaba o cuando seguir recorriendo dejó de tener sentido.

La sentencia continue no termina el bucle. Lo que hace es omitir el resto de la iteración actual y pasar directamente a la siguiente.

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

En este caso, cuando numero vale 3, Python no ejecuta el print(numero) de esa vuelta. En lugar de eso, vuelve al inicio del ciclo y continúa con el siguiente valor.

1
2
4
5

continue es útil cuando hay casos que no deben procesarse, pero el recorrido general sí debe continuar.

Aunque break y continue suelen enseñarse juntos, cumplen funciones distintas. Esa diferencia es fundamental para leer correctamente el flujo de un ciclo.

ConstrucciónQué haceEfecto en el bucle
breakInterrumpe el ciclo completoEl recorrido termina
continueInterrumpe solo la vuelta actualEl ciclo sigue con la siguiente iteración
flowchart TD
A[Inicio de la iteración] --> B{¿Se cumple una condición?}
B -->|No| C[Ejecutar normalmente el bloque]
B -->|Sí, usar continue| D[Omitir el resto de la vuelta]
B -->|Sí, usar break| E[Salir del bucle]
C --> F[Siguiente iteración]
D --> F

Esta distinción puede parecer pequeña al comienzo, pero cambia por completo la lógica del programa. Una sentencia detiene todo el proceso; la otra solo evita procesar un caso puntual.

Uno de los usos más frecuentes de break consiste en detener un recorrido cuando se encuentra un valor determinado.

nombres = ["Ana", "Luis", "Camila", "Pedro"]
for nombre in nombres:
if nombre == "Camila":
print("Nombre encontrado")
break

Aquí el programa recorre la lista hasta encontrar "Camila". En ese momento imprime el mensaje y termina el ciclo. No necesita seguir revisando los elementos restantes, porque el objetivo de la búsqueda ya se cumplió.

Este patrón aparece con frecuencia en búsquedas simples, verificaciones de existencia y validaciones tempranas.

continue aparece a menudo cuando ciertos elementos deben omitirse sin detener el recorrido completo.

notas = [6.0, 0.0, 5.5, 0.0, 4.8]
for nota in notas:
if nota == 0.0:
continue
print(nota)

En este caso, las notas 0.0 se ignoran y el ciclo sigue con las demás.

6.0
5.5
4.8

La utilidad de continue se aprecia bien aquí: el programa no rechaza toda la lista por algunos casos problemáticos, sino que sigue avanzando y procesa solo los valores que interesan.

Tanto for como while pueden incluir una cláusula else. Esta parte se ejecuta únicamente si el ciclo termina de forma normal, es decir, sin haber pasado por un break.

numeros = [2, 4, 6, 8]
for numero in numeros:
if numero == 5:
print("Encontrado")
break
else:
print("No se encontró el valor")

Como el valor 5 nunca aparece, break no se ejecuta y Python entra en la cláusula else.

No se encontró el valor

Este comportamiento es especialmente útil cuando se quiere distinguir entre dos situaciones distintas:

  • el ciclo terminó porque encontró lo que buscaba
  • el ciclo terminó porque revisó todo y no lo encontró

La cláusula else en bucles suele parecer extraña al comienzo porque muchas personas la asocian de inmediato con if. Sin embargo, aquí cumple una función diferente.

No responde a una comparación puntual, sino al modo en que terminó el ciclo. Esa es la idea que conviene retener:

  • si hubo break, else no se ejecuta
  • si no hubo break, else sí puede ejecutarse

Entender esta diferencia ayuda a leer mejor estructuras de búsqueda, validación y recorrido completo.

Las sentencias break y continue no se limitan al bucle for. También pueden utilizarse dentro de un while, donde cumplen la misma función general: modificar el flujo natural del ciclo.

En un while, este control puede resultar incluso más importante, porque el ciclo depende de una condición que se vuelve a evaluar en cada vuelta. Eso significa que el recorrido puede prolongarse bastante si no se gestiona con cuidado.

numero = 0
while numero < 5:
numero = numero + 1
if numero == 2:
continue
if numero == 4:
break
print(numero)

Este fragmento conviene leerlo con calma, porque muestra dos formas distintas de intervenir en una misma repetición.

En cada vuelta:

  • Primero numero aumenta en 1
  • Luego se revisa si vale 2
  • Después se revisa si vale 4
  • Si no ocurre ninguna de esas situaciones, se imprime

El recorrido queda así:

  • Cuando numero vale 1, se imprime
  • Cuando vale 2, se ejecuta continue y esa vuelta termina sin imprimir
  • Cuando vale 3, se imprime
  • Cuando vale 4, se ejecuta break y el bucle finaliza
1
3

Este ejemplo permite observar con claridad que continue y break no producen el mismo efecto:

  • continue interrumpe solo la iteración actual
  • break interrumpe el ciclo completo

Una forma útil de decidir entre estas construcciones es pensar en el tipo de problema que se quiere resolver.

  • break ayuda cuando el recorrido debe detenerse en cuanto ocurre algo decisivo
  • continue sirve cuando ciertos casos deben ignorarse sin cancelar el resto del proceso
  • else permite distinguir entre un recorrido interrumpido y uno completado normalmente

Esa mirada evita usarlos “por costumbre” y ayuda a que el código exprese con mayor claridad la intención del algoritmo.

Estas herramientas vuelven a los bucles más expresivos, pero también exigen cuidado. Si un mismo ciclo acumula demasiados break, continue y condiciones cruzadas, el código puede volverse difícil de leer.

Por eso conviene usarlas cuando realmente mejoran la solución y no solo porque “funcionan”.

Escribe un programa en Python que solicite números enteros al usuario hasta que se ingrese 0. El programa debe sumar solo los números positivos. Los números negativos deben ignorarse.

El programa debe cumplir con los siguientes requisitos:

  • Debe usar un bucle while
  • Debe pedir números usando input()
  • Debe convertir cada dato a int
  • Debe usar break para terminar cuando se ingrese 0
  • Debe usar continue para omitir los números negativos
  • Debe mostrar la suma final al terminar

Cuando ejecutes el programa, debería funcionar de la siguiente manera:

Ingresa un número: 5
Ingresa un número: -2
Ingresa un número: 7
Ingresa un número: 0
Suma total: 12

Si deseas ampliar este contenido con fuentes del propio lenguaje, estas lecturas son especialmente útiles: