
Además de los bucles while y for, Python incorpora instrucciones relacionadas con el control del flujo del programa. En este capítulo aprenderemos a utilizar break y continue para modificar el comportamiento de un bucle y conoceremos pass, una instrucción especial que no realiza ninguna acción y que suele utilizarse como marcador temporal durante el desarrollo de un programa.
1. La instrucción break
La instrucción break finaliza inmediatamente la ejecución del bucle, aunque todavía queden repeticiones por realizar.
Por ejemplo:
for numero in range(1, 11):
if numero == 6:
break
print(numero)
Resultado:
1 2 3 4 5
Cuando numero vale 6, se ejecuta break y el bucle termina.
Podemos utilizar break tanto en bucles for como en while.
Por ejemplo:
contador = 1
while contador <= 10:
if contador == 6:
break
print(contador)
contador = contador + 1
El resultado será el mismo:
1 2 3 4 5
2. La instrucción continue
La instrucción continue no finaliza el bucle, sino que omite la repetición actual y continúa con la siguiente.
Por ejemplo:
for numero in range(1, 6):
if numero == 3:
continue
print(numero)
Resultado:
1 2 4 5
Cuando numero vale 3, Python no ejecuta print(numero) y pasa directamente a la siguiente repetición.
También puede utilizarse con un bucle while.
contador = 0
while contador < 5:
contador = contador + 1
if contador == 3:
continue
print(contador)
Resultado:
1 2 4 5
Observa que, en este caso, el contador se incrementa antes de ejecutar continue. Si no lo hiciéramos, el valor de contador nunca cambiaría y el bucle se volvería infinito.
3. La instrucción pass
La instrucción pass no realiza ninguna acción. Se utiliza cuando la sintaxis de Python exige que exista un bloque de instrucciones, aunque todavía no queramos escribir su contenido.
Por ejemplo:
edad = 20
if edad >= 18:
pass
print("Fin del programa")
Resultado:
Fin del programa
En este caso, la condición se cumple, pero pass no ejecuta ninguna instrucción y el programa continúa normalmente.
Su uso más habitual es dejar preparado un bloque de código que completaremos más adelante.
Por ejemplo:
opcion = 2
if opcion == 1:
print("Nueva partida")
elif opcion == 2:
pass
else:
print("Salir")
En este ejemplo todavía no hemos programado la opción 2. Gracias a pass, el programa puede ejecutarse sin producir errores mientras dejamos ese bloque pendiente de implementar.
¿Sabías que…? pass suele utilizarse como marcador temporal mientras desarrollamos un programa. Más adelante podremos sustituirlo por las instrucciones definitivas.
4. Diferencias entre break, continue y pass
| Instrucción | ¿Qué hace? |
|---|---|
break | Finaliza inmediatamente el bucle. |
continue | Omite la iteración actual y continúa con la siguiente. |
pass | No realiza ninguna acción. Se utiliza para dejar un bloque de código pendiente de implementar. |
break, continue y pass.Por ejemplo:
1 2 3 4 5
↑
break
Resultado:
1 2 3 4 5
1 2 3 4 5
↑
continue
Resultado:
1 2 4 5
1 2 3 4 5
↑
pass
Resultado:
1 2 3 4 5
Como pass no realiza ninguna acción, el comportamiento del programa no cambia.
Consejo: Antes de utilizar break o continue, piensa si realmente son necesarios. En muchos casos es posible escribir el mismo programa utilizando únicamente condiciones (if), obteniendo un código más sencillo y fácil de entender.
Ya sabemos modificar el comportamiento de un bucle utilizando las instrucciones break y continue, y conocemos el uso de pass como marcador temporal durante el desarrollo de un programa. En el siguiente capítulo pondremos en práctica todos los conceptos aprendidos hasta ahora resolviendo problemas completos que combinan variables, operadores, condiciones y bucles.
5. Actividad
Crea un archivo llamado control_bucles.py.
Realiza los siguientes ejercicios:
5.1. Utilizar break
Utiliza un bucle for para mostrar los números del 1 al 10.
Cuando el número sea 7, el programa debe finalizar el bucle utilizando break.
El resultado debe ser:
1 2 3 4 5 6
5.2. Utilizar continue
Utiliza un bucle for para mostrar los números del 1 al 10.
No deben mostrarse los números 4 ni 8.
Utiliza la instrucción continue.
El resultado debe ser:
1 2 3 5 6 7 9 10
5.3. Utilizar pass
Crea un programa que recorra los números del 1 al 5 mediante un bucle for.
Cuando el número sea 3 utiliza la instrucción pass.
Muestra todos los números por pantalla.
Responde después:
- ¿Ha cambiado el resultado del programa?
- ¿Por qué el resultado no cambia al utilizar pass?
5.4. Comparar ambos comportamientos
Responde brevemente:
- ¿Qué hace
break? - ¿Qué hace
continue? - ¿En qué situaciones utilizarías cada uno?
6. Prácticas resueltas
Los siguientes ejercicios permiten practicar las instrucciones break y continue. Intenta resolverlos antes de consultar la solución.
6.1. Buscar un número
Recorre los números del 1 al 20.
Cuando aparezca el número 13, muestra el mensaje «Número encontrado» y finaliza el bucle.
Solución:
for numero in range(1, 21):
if numero == 13:
print("Número encontrado")
break
print(numero)
6.2. Mostrar solo los números impares
Muestra los números del 1 al 10.
No deben mostrarse los números pares.
Utiliza continue.
Solución:
for numero in range(1, 11):
if numero % 2 == 0:
continue
print(numero)
Resultado:
1 3 5 7 9
6.3. Pedir números hasta escribir 0
Solicita números enteros al usuario.
Cuando escriba 0, el programa debe finalizar utilizando break.
Solución:
while True:
numero = int(input("Número (0 para terminar): "))
if numero == 0:
break
print("Has escrito", numero)
6.4. Mostrar las letras de una palabra excepto una
Solicita una palabra.
Recorre todas sus letras con un bucle for.
No debe mostrarse la letra a.
Solución:
palabra = input("Introduce una palabra: ")
for letra in palabra:
if letra == "a":
continue
print(letra)
6.5. Menú hasta elegir salir
Muestra continuamente este menú:
1. Jugar 2. Configuración 3. Salir
Cuando el usuario escriba 3, el programa debe finalizar.
Solución:
while True:
print("1. Jugar")
print("2. Configuración")
print("3. Salir")
opcion = input("Opción: ")
if opcion == "3":
break
print("Has elegido la opción", opcion)
Ejemplo:
1. Jugar 2. Configuración 3. Salir Opción: 2 Has elegido la opción 2 1. Jugar 2. Configuración 3. Salir Opción: 3
6.6. Utilizar pass
Recorre los números del 1 al 5.
Cuando el número sea 3 utiliza la instrucción pass.
Muestra todos los números.
Solución
for numero in range(1, 6):
if numero == 3:
pass
print(numero)
Resultado
1 2 3 4 5
Observa que el resultado es exactamente el mismo que si elimináramos la instrucción
pass, ya que esta no ejecuta ninguna acción.
7. Test de autoevaluación
7.1. ¿Qué hace la instrucción break?
a) Repite el bucle.
b) Finaliza inmediatamente el bucle. ✅
c) Omite una repetición.
d) Reinicia el contador.
Retroalimentación: break termina el bucle aunque queden iteraciones pendientes.
7.2. ¿Qué hace continue?
a) Finaliza el programa.
b) Reinicia el bucle.
c) Omite la repetición actual y continúa con la siguiente. ✅
d) Sale del programa.
Retroalimentación: continue no termina el bucle.
7.3. ¿Qué mostrará este programa?
for i in range(1,6):
if i == 4:
break
print(i)
a) 1 2 3 ✅
b) 1 2 3 4
c) 1 2 3 5
d) 4
Retroalimentación: El bucle termina cuando i vale 4.
7.4. ¿Qué mostrará este programa?
for i in range(1,6):
if i == 3:
continue
print(i)
a) 1 2 4 5 ✅
b) 1 2 3 4 5
c) 3
d) 1 2
Retroalimentación: Se omite únicamente la repetición en la que i vale 3.
7.5. ¿Con qué tipo de bucles puede utilizarse break?
a) Solo con while.
b) Solo con for.
c) Con for y while. ✅
d) Con if.
Retroalimentación: Tanto break como continue pueden utilizarse en los bucles for y while.
7.6. ¿Con qué tipo de bucles puede utilizarse continue?
a) Solo con for.
b) Solo con while.
c) Con ambos. ✅
d) Solo con if.
Retroalimentación: continue funciona exactamente igual en for y en while: omite la iteración actual y continúa con la siguiente.
7.7. ¿Qué ocurrirá si ejecutamos continue antes de incrementar la variable de control en algunos bucles while?
a) Nada.
b) Puede producirse un bucle infinito. ✅
c) Se produce un SyntaxError.
d) El programa termina.
Retroalimentación: Si la variable de control no cambia antes de ejecutar continue, la condición del while puede seguir siendo siempre verdadera y producir un bucle infinito.
7.8. ¿Cuál de estas instrucciones finaliza completamente un bucle?
a) continue
b) break ✅
c) if
d) range()
Retroalimentación: break abandona inmediatamente el bucle, sin esperar a que finalicen las demás iteraciones.
7.9. ¿Cuál de estos fragmentos contiene un error lógico?
contador = 0
while contador < 5:
if contador == 2:
continue
contador = contador + 1
a) El código es correcto.
b) Puede provocar un bucle infinito. ✅
c) Produce un SyntaxError.
d) No entra nunca en el bucle.
Retroalimentación: Cuando contador vale 2 se ejecuta continue sin incrementarlo.
7.10. ¿Qué instrucción utilizarías para dejar de pedir datos cuando el usuario escriba «fin»?
a) continue
b) break ✅
c) pass
d) range
Retroalimentación: Cuando el usuario escribe el valor que queremos utilizar para terminar el programa, break permite salir directamente del bucle.
7.11. ¿Qué hace la instrucción pass?
a) Finaliza el bucle.
b) Omite una iteración.
c) No realiza ninguna acción. ✅
d) Reinicia el programa.
Retroalimentación: pass es una instrucción vacía que permite dejar un bloque de código sin implementar temporalmente.
7.12. ¿Qué mostrará este programa?
for i in range(5):
if i == 1:
continue
if i == 4:
break
print(i)
a) 0 2 3 ✅
b) 0 1 2 3
c) 0 2 3 4
d) 1 2 3
Retroalimentación: Cuando i vale 1 se omite esa iteración mediante continue y cuando vale 4 el bucle finaliza con break.
7.13. ¿Cuál de estas afirmaciones es verdadera?
a) break y continue hacen exactamente lo mismo.
b) break termina el bucle y continue salta una repetición. ✅
c) continue termina el programa.
d) Ninguna es correcta.
Retroalimentación: break y continue modifican el comportamiento del bucle, pero realizan acciones diferentes.
7.14. ¿Qué instrucción se utiliza cuando queremos ignorar solo una iteración?
a) break
b) continue ✅
c) if
d) while
Retroalimentación: continue permite ignorar únicamente la iteración actual sin abandonar el bucle.
7.15. ¿En qué situación suele utilizarse pass?
a) Para salir de un bucle.
b) Para repetir una iteración.
c) Para dejar un bloque de código pendiente de implementar. ✅
d) Para convertir una condición en verdadera.
Retroalimentación: pass se utiliza como marcador de posición cuando todavía no queremos escribir el código de un bloque.
8. Actividad de ampliación
Descubre la instrucción match
Además de break, continue y pass Python dispone de otras instrucciones como match.
Investiga la instrucción match, una estructura de control incorporada en las versiones recientes de Python.
- ¿Qué hace la instrucción
match? - ¿En qué situaciones puede resultar útil?
- Escribe un ejemplo sencillo en el que aparezca
match.
Como apoyo a tu investigación, consulta la documentación oficial de Python:
https://docs.python.org/es/3/tutorial/controlflow.html#match-statements
Objetivo: conocer otra instrucción relacionada con el control del flujo y comprender cuándo puede utilizarse en programas reales.