Aprende Python · lección gratuita
Hasta ahora los bucles for y while recorrían todos sus elementos de principio a fin. Con break, continue y la cláusula else del bucle puedes controlar ese flujo con precisión: salir antes de tiempo, saltarte una vuelta o ejecutar código solo si el bucle terminó sin interrupciones.
break sale por completo del bucle más cercano, sin importar cuántas iteraciones quedaran.continue salta el resto de la iteración actual y pasa directo a la siguiente vuelta.else de un bucle se ejecuta solo si el bucle NO fue interrumpido por un break.break y continue funcionan igual en for y en while.break y continue afectan solo al bucle interno donde se escriben.for ... else para detectar si una búsqueda no encontró nada.break termina el bucle inmediatamente. En cuanto Python lo ejecuta, abandona el bucle y continúa con la primera línea que haya después de él. Es ideal para búsquedas: cuando ya encontraste lo que buscabas, no tiene sentido seguir recorriendo.
continue, en cambio, no sale del bucle: simplemente ignora todo el código que falte en esa iteración y vuelve al principio del bucle para la siguiente vuelta. Sirve para filtrar casos que no quieres procesar.
La parte menos conocida es la cláusula else de un bucle. A diferencia del else de un if, este else va pegado a un for o un while y se ejecuta cuando el bucle se agota normalmente. Si un break interrumpe el bucle, el else se salta. Esto es perfecto para preguntar "recorrí todo y no encontré nada".
numeros = [4, 7, 9, 12]
for n in numeros:
if n % 2 == 0:
print("Encontré un par:", n)
break
else:
print("No había ningún par")
# break: detener al encontrar el primer múltiplo de 5
for n in range(1, 100):
if n % 5 == 0:
print("Primer múltiplo de 5:", n)
break # sale del for
# continue: imprimir solo los impares saltando los pares
for n in range(1, 7):
if n % 2 == 0:
continue # salta el print de los pares
print(n)
# for...else: el else corre porque NO hubo break
for letra in "abc":
print(letra)
else:
print("Recorrido completo")
# while con break: cortar cuando se cumple una condición
contador = 0
while True:
contador += 1
if contador == 3:
break
print("Salí en", contador)
💡 Recuerda que elelsedel bucle solo tiene sentido si dentro hay unbreak. Si no usasbreak, eseelsesiempre se ejecuta y solo añade confusión.
| Instrucción | Qué hace | Dónde se usa |
|---|---|---|
break | Sale del bucle de inmediato | for y while |
continue | Salta al inicio de la siguiente iteración | for y while |
for ... else: | El else corre si NO hubo break | tras un for |
while ... else: | El else corre si NO hubo break | tras un while |
break en anidados | Solo rompe el bucle interno | bucles anidados |
while True: ... break | Bucle infinito con salida controlada | while |
---