Una de las cosas más interesantes que tienen las computadoras es que pueden hacer muchas tareas muy rápido. Esto es bueno cuando tenemos que hacer tareas repetitivas, a menudo aburridas y complejas. Aquí vienen en utilidad esta máquinas que automatizan la repetición de tareas evitándonos hacer el trabajo pesado.
Resulta útil, entonces, aprender a escribir un programa que repita tareas. Para ello necesitaremos aprender sobre los bucles. Hay varios bucles interesantes, pero empecemos por el más sencillo y útil: el bucle mientras, mejor conocido como while
.
Analicemos el programa a continuación para poder ver en acción el bucle while
y comprender cómo funciona.
ALGORITHM AdivinaLetra
char letra;
print("Estoy pensando una letra, cuál es?") ;
print("Ingresa tu respuesta: ");
scan(letra); //L
while (letra != 'W') do
print("Hmmm... Esa no es...");
print("Intenta de Nuevo: ");
scan(letra);
endwhile
print("Felicitaciones! Adivinaste.");
END
Recorriendo línea por línea, podemos ver que el programa hace lo siguiente:
char
llamada letra
.letra
.while
comparando si el valor almacenado en letra
es distinto a 'W'
. En el caso que el usuario haya ingresado un valor distinto, por ejemplo 'M'
, el programa ingresará a ejecutar el código que está disponible dentro del bloque while
(de forma similar al comportamiento del bloque if
).while
, el programa imprimirá un mensaje al usuario indicando que ingrese otra letra, ya que no ha coincidido con la letra que debía adivinar. Finalizado esto, retornará al principio del bucle while
y evaluará de nuevo la veracidad de la expresión letra != 'W'
. Es decir, de la línea 11 volverá a la 7.letra
no tenga el valor 'W'
almacenado.while
, es decir, cuando letra
sea igual a 'W'
la condición evaluará como false
, y en ese caso la ejecución del programa saltará todo el cuerpo del bucle while
para retomar la ejecución en la línea 13. En esa línea encontrará la instrucción de mostrar un mensaje al usuario indicando que ha adivinado la letra.Podemos entender al bucle while
como una estructura de tres pasos:
while
una vez y, al llegar al final,Es importante notar que el bucle while realiza el chequeo de la condición antes de hacer su bloque de tareas, es decir: hará sus tareas mientras una condición se cumpla. Esto nos lleva a ver que esa condición podría no cumplirse nunca, por lo que las tarea asociadas no se ejecutarán. Decimos entonces que el bucle while se ejecuta 0 o más veces (0+).
La forma general del bucle while
es
while (*condición*) do
// sentencias por true
endwhile