Los bucles o iteraciones se usan en programación para conseguir que un programa repita
una serie de pasos o acciones hasta alcanzar un objetivo, vamos a continuación a ver cómo se utilizan
en Lingo.
Atención: Contenido exclusivo de DesarrolloMultimedia.es. No reproducir. Copyright.
Básicamente un bucle es una tarea organizada, un fragmento de código que se encarga de gestionar una tarea repetitiva.
Por ejemplo, si necesitamos declarar como "puppet" todos los sprites del score desde el 1
hasta el 45, un mal programador escribiría:
set the puppet of sprite 1 to true
set the puppet of sprite 2 to true
set the puppet of sprite 3 to true
...........
set the puppet of sprite 45 to true
Y así hasta que se le durmieran los dedos. Para evitar esto debemos usar bucles. Así por
ejemplo para el caso anterior, el problema estaría resuelto con el bucle siguiente:
repeat with x = 1 to 45
set the puppet of sprite x to true
end repeat
A continuación se describen los dos tipos de bucles que nos podemos encontrar en Lingo.
- El bucle "repeat while": Este es un bucle que ejecuta su código mientras se cumpla
una expresión de control. Esta expresión puede ser cualquier variable o expresión que
se pueda evaluar como verdadera (TRUE) o falsa (FALSE). El formato de este bucle es el
siguiente:
repeat while condición
sentencias
end repeat
Por ejemplo:
repeat while the mouseH > 40
-- acciones--
end repeat
repeat while not terminado
-- acciones ---
end repeat
En el bucle que se muestra a continuación se detiene la película durante cinco segundos.
startTimer
repeat while the timer < 5 * 60
put "Esperando cinco segundos"
end repeat
Hay que tener cuidado con los bucles repeat while, ya que mientras están funcionando,
absorverán toda la atención del programa por lo que, las pulsaciones del ratón, las
animaciones y el resto de acciones de la película se detendrán.
- El bucle "repeat with": Este es un "bucle contador". Realiza una serie de acciones
hasta que un contador alcanza un número predefinido por el programador. El formato
de este bucle es el siguiente:
repeat with variable=inicio to final
sentencias
end repeat
Por ejemplo:
repeat with x = 1 to the number of words in field "textos"
if word x of field "textos" = "lingo" then alert "Has escrito Lingo"
end repeat
Este bucle repite la acción de búsqueda desde 1 hasta el numero de palabras que hay
en el campo "textos".
El bucle siguiente simplemente realiza una cuenta de 1 a 260, contando de uno e uno, y
la imprime en un campo de texto.
repeat with cuenta = 1 to 260
set cuenta = cuenta + 1
put cuenta into field "msg"
end repeat
Este otro, realiza la misma cuenta de 1 a 260, pero contado de dos en dos, ya que el
valor de la variable "cuenta" es aumentada en 2 en cada iteración del bucle.
repeat with cuenta = 1 to 260
set cuenta = cuenta + 2
put cuenta into field "msg"
end repeat
Es fácil imaginarse cientos de utilidades para los bucles, desde una simple cuenta, hasta
la programación de la trayectoria de una pelota de fútbol o un proyectil en un juego. Siempre
que queramos realizar acciones repetitivas en un programa debemos recurrir a los bucles, ya
que estos forman parte de cualquier estructura de código en cualquier lenguaje de
programación.