Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Bucle while

Departamento de Tecnología
IES Frei Martín Sarmiento

Importante: Permite repetir un bloque de código un número indeterminado de veces, es decir, no sabemos cuántas veces (¿una vez?, ¿dos?...¿tres?) se va a ejecutar el bloque de código, ya que depende de la condición que se establezca.

Python

Figure 1:Bucle while

La sintaxis básica del bucle while es la siguiente:


while condicion:
    # bloque de código a ejecutar mientras la condición sea verdadera
    
# bloque de código a ejecutar después de salir del bucle (cuando la condición no sea verdadera)

Veamos algún ejemplo:

Ejemplo 1: Utilizar while como contador creciente

contador = 1

while contador <= 5:
    print(contador, "paso")
    contador += 1    # Esto es equivalente a contador = contador + 1
print("Cuando no se cumpla la condición (contador igual a 6), el programa sigue aquí")
1 paso
2 paso
3 paso
4 paso
5 paso
Cuando no se cumpla la condición, el programa sigue aquí
Explicación del programa

En este caso, el bucle while se ejecutará mientras la condicion sea verdadera, es decir, mientras contador sea menor o igual a 5. En cada iteración, se imprime el valor de `contador y luego se incrementa en 1

Ejemplo 2: Utilizar while como cuenta atrás

contadorAtras = 5  # Inicializamos el número en 5

print ("Comienza la cuenta atrás")

while contadorAtras > 0:  # Mientras el número sea mayor que 0
    print(contadorAtras)  # Imprimimos el número actual
    contadorAtras -= 1  # Decrementamos el número en 1. Esto es equivalente a contador = contador - 1

print("¡Despegue!")  # Mensaje final
Comienza la cuenta atrás
5
4
3
2
1
¡Despegue!
Explicación del programa

El código utiliza un bucle while para contar hacia atrás desde 5 hasta 1, imprimiendo cada número en cada iteración. La variable´ cuentaAtras´ se decrementa en 1 en cada ciclo hasta que llega a 0, momento en el cual el bucle se detiene y se imprime el mensaje “¡Despegue!”. Este ejemplo muestra cómo los bucles while permiten repetir acciones basadas en condiciones.

Break: simular un do-while

El bucle do-while (“haz mientras”) es un tipo de bucle que es común en algunos otros lenguajes de programación. Un bucle do-while es como un bucle while, pero siempre ejecuta el código dentro del bucle al menos una vez y luego sigue ejecutando el bucle mientras la condición sea verdadera.

Python no tiene un bucle “do-while” integrado como algunos otros lenguajes, pero puedes simular un bucle “do-while” usando un bucle while True con una sentencia break.

Sintaxis básica de un bucle do-while simulado en Python:


while True:
    # Bloque de código a ejecutar al menos una vez
    if not condicion:
        break  # Salir del bucle si la condición no se cumple

Ejemplo: Sumar números hasta que se introduce el 0.

  • Queremos escribir un programa que sume números introducidos por el usuario hasta/mientras (while) que el usuario introduzca el número 0 .

  • En este caso, hay que obligar al programa a que pida, como mínimo una vez, un número (aunque sea el 0, si el usuario quiere terminar)

  • Para esto, usamos un bucle while True (hacemos Verdadera (True) la condición comprobada por while) para forzar a que el programa entre en el bucle al menos una vez.

  • A partir de ahí, el programa seguirá pidiendo números hasta que el usuario introduzca el número 0, momento en el cual se ejecutará la sentencia break para salir del bucle.

suma = 0

while True: 
    numero = int(input("Introduce un número (o 0 para terminar): "))
    if numero == 0:
        break  # Salir del bucle whilesi el número introducido es 0
    suma = suma + numero 

print(f"La suma total es: {suma}")
Explicación del programa
  • El programa inicializa suma en 0.

  • Obligamos a entrar en un bucle infinito, ya que obligamos a que while sea verdadero (while True)

    • En el bucle se pide al usuario que introduzca un número.

    • Si el número es 0, el bucle se detiene (break).

    • Si el número es diferente de 0, se suma a suma.

  • Al final, se imprime la suma total de los números introducidos.