Las instrucciones break y continue en Python te permiten controlar el flujo de los bucles de forma muy precisa. Pero, ¿cuándo deberías usarlas? ¿Y cómo afectan al programa?
En este artículo aprenderás a:
-
Entender qué hace cada una.
-
Ver ejemplos prácticos paso a paso.
-
Probar un ejercicio final como bonus.
-
Resolver dudas frecuentes con una sección de FAQ.
- ¿Qué hacen
breakycontinue?
| Instrucción | ¿Qué hace? |
|---|---|
break |
Termina el bucle inmediatamente. |
continue |
Salta el resto del bucle y sigue con la siguiente iteración. |
Ejemplo 1: Encontrar el número más grande con break
Este programa pregunta al usuario una y otra vez por números, hasta que escribe -1. Al final, muestra cuál fue el número más grande introducido.
Código:
Paso a paso:
Se inicializa una variable largest_number con un valor muy bajo.
Se crea un bucle infinito con while True.
Se pide un número al usuario.
Si el número es -1, el programa se detiene con break.
Si no, se cuenta como válido y se compara para ver si es el mayor.
Al salir del bucle, si el usuario introdujo algún número válido, se imprime el resultado.
Es decir:
Se inicializa largest_number con un número muy pequeño para que cualquier número que introduzcas lo pueda superar.
counter = 0 lleva la cuenta de cuántos números válidos has introducido.
Se entra en un bucle infinito con while True, que solo se romperá con break.
Se pide al usuario un número.
Si el número es -1, se ejecuta break y se termina el bucle.
Si no, se suma uno al contador.
Luego, si el número introducido es mayor que el actual largest_number, se actualiza.
Al salir del bucle, se revisa si el contador es mayor que 0:
Si sí, se muestra el mayor número introducido.
Si no, significa que no se introdujo ningún número válido.
Ejemplo 2: Mismo programa con continue (aunque no sea necesario aquí)
Este ejemplo también busca el número más grande, pero organiza el código de forma distinta: pide el primer número fuera del bucle y luego entra en el while.
Código:
Paso a paso:
Igual que antes, se inicializan las variables.
Se pide el primer número antes del bucle, para comprobar si ya es -1.
El bucle while solo se ejecuta si number != -1.
Dentro del bucle, hay un if number == -1 con continue, pero esta condición nunca se cumple, porque ya se evitó entrar al bucle si number == -1, así que este continue está de más.
Si el número es válido, se incrementa el contador.
Si es mayor que largest_number, se actualiza.
Al final de cada iteración, se pide otro número.
Cuando se introduce -1, se sale del bucle.
Al final, se imprime el mayor número si se introdujo al menos uno.
Este ejemplo usa continue, pero en realidad es innecesario aquí. No cambia nada.
BONUS: Cuenta solo los números positivos con break y continue
Este ejercicio es ideal para practicar ambas instrucciones a la vez.
Objetivo: contar cuántos números positivos introduce el usuario.
Se termina al escribir 999, e ignora los números negativos.
Paso a paso:
-
Se inicia el contador
counten 0. -
El bucle es infinito (
while True) para seguir pidiendo números indefinidamente. -
Se pide al usuario un número.
-
Si el número es
999, se rompe el bucle conbreaky termina todo. -
Si el número es negativo, se usa
continuepara saltarse el resto de instrucciones y pedir otro número directamente. -
Si el número es positivo, se incrementa el contador.
-
Al salir del bucle, se imprime cuántos números positivos válidos se introdujeron.
Preguntas Frecuentes (FAQ)
1. ¿Cuál es la diferencia exacta entre break y continue?
-
**break**sale completamente del bucle. -
**continue**salta solo la iteración actual y pasa a la siguiente vuelta del bucle.
2. ¿Puedo usar break y continue en cualquier tipo de bucle?
Sí, puedes usarlos tanto en bucles while como en for. Funcionan igual:
-
breakdetiene el bucle. -
continuesalta al siguiente ciclo.
3. ¿Puedo usar los dos (break y continue) en el mismo bucle?
Sí, y el ejemplo del bonus lo demuestra. Puedes usarlos juntos cuando:
-
Necesitas omitir ciertos valores (
continue), -
Y también tener una condición clara para salir del bucle (
break).
4. ¿Qué pasa si uso continue al final del bucle?
Si lo pones justo antes de pedir un nuevo valor, puede provocar un error de lógica porque no se pedirá el siguiente número. Siempre asegúrate de que la entrada de datos esté colocada correctamente para no entrar en un bucle infinito.
5. ¿Cómo sé cuándo usar break o continue?
Usa esta regla práctica:
| Situación | Usa… |
|---|---|
| Quiero terminar el bucle completamente | break |
| Quiero saltar esta vuelta y seguir | continue |
6. ¿Por qué usamos -99999999 al inicio en el ejemplo del número más grande?
Ese número sirve como un valor inicial muy bajo, para que cualquier número que el usuario introduzca sea más grande. Es una forma de asegurarte de que la comparación if number > largest_number funcione correctamente desde el principio.
7. ¿Qué pasa si nunca escribo un número válido?
En los ejemplos, si el usuario no introduce ningún número válido (por ejemplo, solo -1 o 999 desde el principio), el programa detecta eso con un contador (counter) y muestra un mensaje especial: "You haven't entered any number."
¿Sabías que puedes simular break y continue sin usarlos explícitamente, usando funciones y return?
Ejemplo: simular break con funciones, como un programador avanzado
def process_numbers():
Esta línea define una función llamada process_numbers. Todo el código que está indentado debajo de esta línea pertenece a esta función.
while True:
Inicia un bucle infinito (while True). Este bucle seguirá ejecutándose para siempre, a menos que se interrumpa manualmente (en este caso, con return).
number = int(input(«Enter a number (0 to stop): «))
Pide al usuario que introduzca un número.
input() siempre devuelve una cadena, así que int() la convierte en un número entero.
El mensaje sugiere que si el usuario introduce 0, el programa debería parar.
if number == 0:
return # Esto actúa como un break
Esta condición comprueba si el usuario ha escrito 0.
Si es así, se ejecuta return, que sale inmediatamente de la función process_numbers.
Esto detiene el bucle, de forma similar a lo que haría un break, pero a un nivel superior: sale de toda la función, no solo del bucle.
print(«You entered:», number)
Si el número no es 0, simplemente se imprime lo que el usuario ha introducido.
print(«Start»)
Esta línea se ejecuta antes de llamar a la función.
Sirve para mostrar que el programa ha comenzado.
process_numbers()
Aquí se llama a la función process_numbers.
Se entra en el bucle infinito y se ejecuta todo su código hasta que el usuario escriba 0.
print(«End»)
Esta línea se ejecuta solo después de que la función haya terminado (es decir, cuando se llama a return).
Muestra que el programa ha terminado correctamente.
¿Por qué es avanzado?
Porque:
Usa funciones como forma de modularizar el flujo del programa.
Utiliza return estratégicamente para controlar la ejecución de manera más elegante que con break.
Mejora la legibilidad y facilita el reuso del código.
Contenido Web de Yolanda Muriel está sujeto bajo Licencia Creative Commons Atribución-NoComercial-SinDerivadas 3.0 Unported.





