Instrucciones

3. Bucles

3.1. Bucle "while"

Es la sentencia de bucle más sencilla, y sin embargo es tremendamente potente.

Sintaxis:

while (<condición>) <sentencia/s>;

La sentencia o el grupo de sentencias es ejecutado repetidamente mientras la condición sea verdadera, ("while" en inglés significa "mientras").
Si no se especifica condición se asume que es "true", y el bucle se ejecutará indefinidamente.
Si la primera vez que se evalúa la condición resulta falsa, la/s sentencia/s no se ejecutarán ninguna vez.

Por ejemplo:

while (x < 100) x = x + 1; 

Se incrementará el valor de x mientras x sea menor que 100. Ver que el bucle de iteración es una línea!!, por eso podemos evitar las {}.

Este ejemplo puede escribirse, usando el C++ con propiedad y elegancia, de un modo más compacto:

while (x++ < 100); // tener presente orden de evaluación y precedencia

Aquí vemos el uso de una sentencia nula, observa que el bucle simplemente se repite, y la sentencia ejecutada es ";", es decir, nada.

Veamos un ejemplo:

 Figura 1

Esto visto con un Diagrama de Flujo sería:

 Figura 2

Observaciones.

  • La evaluación se hace ANTES de ingresar el bloque de iteración.
  • Si la evaluación es falsa se finaliza.
  • Podría ser que NUNCA se ejecute el Bloque de iteración si la evaluación resulta FALSA en la primer evaluación.
  • Podría pasar que NUNCA se finalice en bucle,  si la condición que modifica la expresión No se realiza correctamente. ( "se cuelga el programa")

 Que pasa ....

  • Si la línea 6 de la Figura 1 fuera:   while (x>0);  
  • Si la línea 5 de la Figura 1 fuera :  float x=0;
  • Si la línea 6 de la Figura 1 fuera:   while (1)