1.10 Instrucciones de repetición: while

Hasta ahora, vimos dos tipos de instrucciones: Las de secuencia, que se ejecutan siempre linealmente una a continuación de la otra, y las de decisión, que permiten decidir si se ejecutará o no otra instrucción.

Vamos a empezar ahora a ver el tercer grupo de instrucciones, que son las que permiten ejecutar otras instrucciones más de una vez: las instrucciones de repetición o iteración. La primera de esas instrucciones es la instrucción while.

El formato de la instrucción es:

 while   condición :
       ....
       (otras instrucciones)
       ....
  (siguiente instrucción)

Lo primero que hace la instrucción while es analizar la condición. Si el resultado es verdadero, se dice que "entra al ciclo", y ejecuta las otras instrucciones que están debajo del while, indentadas a la derecha. Cuando termina de ejecutar las otras instrucciones, vuelve a analizar la condición. Si todavía es verdadera, vuelve a ejecutar las otras instrucciones que están dentro del ciclo. Cuando termina, vuelve a analizar la condición, y así seguirá repitiendo las otras instrucciones que están en el ciclo hasta que la condición sea falsa. Cuando esto ocurra, continuará ejecutando la siguiente instrucción que esté después del while.


 def factorial():
    """solicitar al usuario un número, e indicar el factorial de dicho número."""
    n = int(input("Ingrese un número:"))
    i = 1
    fact = 1
    while i<=n:
        fact = fact * i
        i = i+1
    print ("El factorial es ",fact)
  
factorial()


 En este ejemplo, el usuario ingresa el valor de n, y luego comienza el ciclo. Inicialmente, i vale 1 y se guarda ese valor en fact. Luego se suma 1 a i, y se llega al final de las instrucciones que están dentro del ciclo: se compara i (que ahora vale 2) con n (valor ingresado por el usuario), y si sigue siendo menor o igual, vuelve a comenzar el ciclo: se multiplica ese valor por fact, y se pasa al valor siguiente.  Así, hasta que i sea mayor a n (valdrá n+1). En ese caso, el ciclo no vuelve a comenzar, y el print final muestra el valor del factorial calculado.

En este ciclo, la condición es evaluada antes de ejecutar las instrucciones que están dentro del ciclo, por lo que si la condición no se cumple de entrada, las instrucciones dentro del ciclo no se ejecutarán nunca.

Una vez dentro del ciclo, las intrucciones dentro del ciclo se repetirán hasta que se modifique el resultado de la condición, por lo es necesario que por lo menos una de dichas instrucciones modifique las variables presentes en la condición. (En este ejemplo, la instrucción i = i + 1 puede modificar la condición  i <= n .

No hay comentarios:

Publicar un comentario