Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Repetición Condicional (while)

Fig. 8.3: while: la carga da vueltas mientras la condición se cumpla.

El bucle while es un Ciclo de Retroalimentación, y eso lo hace completamente distinto al for. El for recorre una lista porque sabe de antemano cuántos elementos tiene. El while no sabe nada. Avanza a ciegas y solo se detiene cuando un sensor lo frena.

La instrucción que modela es esta: “Sigue llenando el tanque MIENTRAS no se derrame”.

Sintaxis

litros = 0
capacidad = 50

while litros < capacidad:
    print(f"Llenando... Van {litros} litros")
    litros += 10  # ¡CRÍTICO! Debemos cambiar la condición

print("Tanque lleno")

El Peligro del Bucle Infinito

Borra la línea litros += 10 y observa lo que pasa: la condición 0 < 50 nunca deja de ser True. El programa se queda atascado y deja de responder. (Tu computadora sigue viva; ese programa no.) En el Almacén Digital, esto equivale a una banda transportadora que nadie apagó, girando hasta quemar el motor.

¡Ojo!: Si usas while, algo dentro del bucle tiene que cambiar para que la condición llegue a ser False. Sin ese cambio, el bucle no termina nunca.

El Bucle Infinito a Propósito (while True + break)

A veces no sabes cuántas vueltas hacen falta porque dependen del usuario. El patrón estándar es un bucle infinito controlado: gira para siempre y solo sale cuando una condición interna dispara un break. Es el motor de casi todos los menús.

while True:
    opcion = input("Elige una opción (o 'salir'): ")
    if opcion == "salir":
        break          # la única puerta de salida
    print(f"Procesando: {opcion}")

print("Hasta luego")

La diferencia con el bucle infinito accidental de arriba es el break: aquí la salida es deliberada y está bajo tu control. (El break lo ves en detalle en la siguiente sección; por ahora es solo “la puerta de salida”.) Este es el esqueleto del menú que montarás en el proyecto final.