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)
       ....
  };

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 dentro de la llave. Cuando termina de ejecutar las instrucciones, vuelve a analizar la condición. Si todavía es verdadera, vuelve a ejecutar las instrucciones que están dentro de las llaves. Cuando termina, vuelve a analizar la condición, y así seguirá repitiendo las instrucciones que están entre las llaves hasta que la condición sea falsa. Cuando esto ocurra, continuará ejecutando la instrucción que esté después del while normalmente.



// ejemplo5.cpp: Calcular el factorial de un número
// El factorial de un número n es el producto de todos los números naturales desde 1 hasta n.

#include "stdafx.h"
#include <iostream>
using namespace std;
void main()
{
       int n, fact, i;
       cout<<"Ingrese un número:";
       cin>>n;
       i = 1;   // i es una variable auxiliar que cuente la cantidad de veces que se ejecuta el ciclo;
       fact = 1;  // le asigno un valor inicial 1
       while (i <= n)
       {
             fact = fact * i;
             i = i+1;
       }
       cout<<"El factorial de "<<n<<" es "<<fact<<endl;


       cin>>i;
}

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 factorial. Luego se suma uno 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 el factorial, 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 cout 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