PyQuiz 26 - while + break en Python | Quiz interactivo

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

  1. i = 0 — la variable de control empieza en 0.
  2. Iteraciones 1-3: en cada una, i < 10 es True y i == 3 es False. Se ejecuta i += 1. Tras estas iteraciones, i = 3.
  3. Cuarta iteración: i < 10 es True. Se entra al cuerpo del bucle.
  4. if i == 3: — ahora sí es True. Se ejecuta break. El bucle termina inmediatamente.
  5. La instrucción i += 1 NO se ejecuta porque el break sale del bucle antes de llegar a ella.
  6. print(i)i vale 3 en el momento del break. Se imprime 3.

📥 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.

Ver el curso completo →

37+ horas · 734 actividades · Proyecto real · Acceso de por vida · 14 días de garantía

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Publicar un comentario