Hasta ahora hemos empleado estructuras SECUENCIALES y CONDICIONALES.
Existe otro tipo de estructuras tan importantes como las anteriores que
son las estructuras REPETITIVAS.
Una estructura repetitiva permite ejecutar una instrucción o un conjunto de instrucciones varias veces.
Una ejecución repetitiva de sentencias se caracteriza por:
- La o las sentencias que se repiten.
- El test o prueba de condición antes de cada repetición, que motivará que se repitan o no las sentencias.
Funcionamiento del while: En primer lugar se verifica la condición, si
la misma resulta verdadera se ejecutan las operaciones que indicamos
entre las llaves que le siguen al while.
En caso que la condición sea Falsa continúa con la instrucción siguiente al bloque de llaves.
El bloque se repite MIENTRAS la condición sea Verdadera.
Importante: Si la condición siempre retorna verdadero estamos en
presencia de un ciclo repetitivo infinito. Dicha situación es un error
de programación, nunca finalizará el programa.
Ejemplo: Realizar un programa que imprima en pantalla los números del 1 al 100.
Sin conocer las estructuras repetitivas podemos resolver el problema
empleando una estructura secuencial. Inicializamos una variable con el
valor 1, luego imprimimos la variable, incrementamos nuevamente la
variable y así sucesivamente. Pero esta solución es muy larga.
La mejor forma de resolver este problema es emplear una estructura repetitiva:
<html>
<head>
</head>
<body>
<script type="text/javascript">
var x;
x=1;
while (x<=100)
{
document.write(x);
document.write('<br>');
x=x+1;
}
</script>
</body>
</html>
Para que se impriman los números, uno en cada línea, agregamos la marca HTML de <br>.
Es muy importante analizar este programa:
La primera operación inicializa la variable x en 1, seguidamente
comienza la estructura repetitiva while y disponemos la siguiente
condición ( x <= 100), se lee MIENTRAS la variable x sea menor o
igual a 100.
Al ejecutarse la condición, retorna VERDADERO, porque el contenido de x (1) es menor o igual a 100.
Al ser la condición verdadera se ejecuta el bloque de instrucciones que
contiene la estructura while. El bloque de instrucciones contiene dos
salidas al documento y una operación.
Se imprime el contenido de x y seguidamente se incrementa la variable x
en uno.
La operación x = x + 1 se lee como "en la variable x se guarda el
contenido de x más 1". Es decir, si x contiene 1 luego de ejecutarse
esta operación se almacenará en x un 2.
Al finalizar el bloque de instrucciones que contiene la estructura
repetitiva, se verifica nuevamente la condición de la estructura
repetitiva y se repite el proceso explicado anteriormente.
Mientras la condición retorne verdadero, se ejecuta el bloque de
instrucciones; al retornar falso la verificación de la condición, se
sale de la estructura repetitiva y continúa el algoritmo, en este caso,
finaliza el programa.
Lo más difícil es la definición de la condición de la estructura while y
qué bloque de instrucciones se va a repetir. Observar que si, por
ejemplo, disponemos la condición x >=100 ( si x es mayor o igual a
100) no provoca ningún error sintáctico pero estamos en presencia de un
error lógico porque al evaluarse por primera vez la condición retorna
falso y no se ejecuta el bloque de instrucciones que queríamos repetir
100 veces.
No existe una RECETA para definir una condición de una estructura
repetitiva, sino que se logra con una práctica continua, solucionando
problemas.
Una vez planteado el programa debemos verificar si el mismo es una
solución válida al problema (en este caso se deben imprimir los números
del 1 al 100 en la página), para ello podemos hacer un seguimiento del
flujo del diagrama y los valores que toman las variables a lo largo de
la ejecución:
x
1
2
3
4
.
.
100
101 Cuando x vale 101 la condición de la estructura
repetitiva retorna falso, en este caso finaliza el diagrama.
La variable x recibe el nombre de CONTADOR. Un contador es un tipo
especial de variable que se incrementa o decrementa con valores
constantes durante la ejecución del programa.
El contador x nos indica en cada momento la cantidad de valores impresos
en la página.
Importante: Podemos observar que el bloque repetitivo puede no ejecutarse si la condición retorna falso la primera vez.
La variable x debe estar inicializada con algún valor antes que se ejecute la operación x = x + 1.