PyQuiz 26 – while + break en Python
El reto
i = 0
while i < 10:
if i == 3:
break
i += 1
print(i)
¿Cuál es el resultado?
- a) 3
- b) 10
- c) 4
Piensa tu respuesta antes de seguir leyendo…
Concepto: while + break
La sentencia break interrumpe inmediatamente la ejecución del bucle más interno en el que se encuentra, saltando al código que viene después del bucle. Es útil cuando se cumple una condición de salida antes de que el bucle complete todas sus iteraciones.
En un bucle while, el flujo normal es: comprobar la condición → ejecutar el cuerpo → volver a comprobar. Con break, en cuanto se ejecuta esa instrucción, el bucle termina sin comprobar la condición nuevamente.
Es importante distinguir cuál es el valor de la variable de control en el momento en que se ejecuta break. El bucle no incrementa i después del break; la variable retiene el valor que tenía cuando se disparó la condición.
Paso a paso
i = 0— la variable de control empieza en0.- Iteraciones 1-3: en cada una,
i < 10esTrueyi == 3esFalse. Se ejecutai += 1. Tras estas iteraciones,i = 3. - Cuarta iteración:
i < 10esTrue. Se entra al cuerpo del bucle. if i == 3:— ahora sí esTrue. Se ejecutabreak. El bucle termina inmediatamente.- La instrucción
i += 1NO se ejecuta porque elbreaksale del bucle antes de llegar a ella. print(i)—ivale3en el momento delbreak. Se imprime3.
📥 Llévate el cheatsheet de Python (gratis)
PDF de 6 páginas con lo esencial: tipos, condicionales, bucles, estructuras de datos, funciones y los errores que más vas a cometer. Para tener al lado mientras programas.
Sin spam. Te apuntas a la lista, descargas el cheatsheet y recibes contenido de Python cada semana.
Solución
Respuesta correcta: A) 3
El bucle incrementa i hasta que llega a 3, entonces break sale. i vale 3.
Sabías que...
Python tiene también continue (salta al siguiente ciclo) y la cláusula else en bucles, que se ejecuta solo si el bucle terminó sin break:
# continue: salta la iteración actual
for i in range(5):
if i == 2:
continue
print(i) # imprime 0, 1, 3, 4 (salta el 2)
# else en bucle: se ejecuta si NO hubo break
def buscar(lista, objetivo):
for elemento in lista:
if elemento == objetivo:
print(f'Encontrado: {elemento}')
break
else:
print('No encontrado')
buscar([1, 2, 3], 2) # 'Encontrado: 2'
buscar([1, 2, 3], 9) # 'No encontrado'
# break en while con centinela
while True:
entrada = input('Escribe algo (q para salir): ')
if entrada == 'q':
break
print(f'Dijiste: {entrada}')
Prueba tú mismo
¿Qué valor imprimiría i si el break estuviera dentro de un if i == 5 y el incremento i += 1 estuviera ANTES del if?
Más PyQuizzes en elpythonista.com/pyquizzes
Tutorial relacionado: Bucles for y while
¿Quieres aprender Python en orden, no a saltos?
Esto que has leído es solo una pieza. En El Pythonista lo verás todo encadenado: 11 módulos, 37+ horas de vídeo, 734 actividades y un proyecto real (MovieTracker) que crece contigo desde la primera variable hasta el deploy a producción.
37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía
