Sentencia iterativa while

Al contrario de lo que ocurre con los bucles for, los bucles while no se repiten un número determinado de veces, sino mientras se cumpla una condición. La estructura de estos bucles es la siguiente:

while condición:

    código

Si quisiéramos leerlo sería algo como "Mientras se cumpla la condición, ejecuta el código y vuelve a evaluar si se sigue cumpliendo la condición". Tal y como ocurría con la sentencia if, condición es una expresión que devuelve un booleano (True/False). Y, nuevamente, el código que deseamos ejecutar dentro del bucle deberá aparecer sangrado con cuatro espacios en blanco o un tabulador. Por ejemplo:

Sentencia iterativa while

Veamos con detalle cómo se ejecutaría este código:

  • Inicialmente n toma el valor 1 (primera línea del código).
  • Llegamos al bucle while y la primera línea del mismo (while n < 8) comprueba si se cumple la condición "¿es n menor que 8?". Sí, se cumple, de forma que se ejecuta el código que hay en el interior del bucle, imprimiendo n y asignando a n un nuevo valor resultante de sumar a n su propio valor. Es decir, ahora n vale 2.
  • Y volvemos al comienzo del bucle y volvemos a preguntarnos si la condición se sigue cumpliendo "¿es n menor que 8?" Sí, por lo que se vuelve a ejecutar el código del bucle y se asigna a n el nuevo valor de 4 (= 2 + 2).
  • Vuelve a cumplirse la condición de ser n menor que 8, por lo que se vuelve a ejecutar el código del bucle. Y se asigna a n el nuevo valor de 8 (= 4 + 4).
  • Y volvemos al comienzo del bucle y a preguntarnos "¿es n menor que 8?" Y ahora la respuesta es negativa (8 no es menor que 8), por lo que no se ejecuta el código del bucle y el programa continuaría ejecutando las instrucciones que hubiese a continuación.