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)