Lua - Bucles

Puede haber una situación en la que necesite ejecutar un bloque de código varias veces. En general, las sentencias se ejecutan secuencialmente: la primera sentencia de una función se ejecuta primero, seguida de la segunda, y así sucesivamente.

Los lenguajes de programación proporcionan varias estructuras de control que permiten rutas de ejecución más complicadas.

Una declaración de bucle nos permite ejecutar una declaración o grupo de declaraciones varias veces. A continuación se muestra la forma general de una declaración de bucle en la mayoría de los lenguajes de programación:

Lua proporciona los siguientes tipos de bucles para manejar los requisitos de bucle.

No Señor. Tipo de bucle y descripción
1 while loop

Repite una declaración o un grupo de declaraciones mientras una condición determinada es verdadera. Prueba la condición antes de ejecutar el cuerpo del bucle.

2 en bucle

Ejecuta una secuencia de declaraciones varias veces y abrevia el código que administra la variable de bucle.

3 repetir ... hasta bucle

Repite la operación del grupo de declaraciones hasta que se cumpla la condición hasta que se cumpla.

4 bucles anidados

Puede usar uno o más bucles dentro de cualquier otro bucle while, for o do.. while.

Declaración de control de bucle

La instrucción de control de bucle cambia la ejecución de su secuencia normal. Cuando la ejecución abandona un ámbito, todos los objetos automáticos que se crearon en ese ámbito se destruyen.

Lua admite las siguientes declaraciones de control.

No Señor. Declaración de control y descripción
1 declaración de ruptura

Termina el loop y transfiere la ejecución a la instrucción que sigue inmediatamente al bucle o cambio.

El bucle infinito

Un bucle se convierte en bucle infinito si una condición nunca se vuelve falsa. loswhileloop se utiliza a menudo para este propósito. Dado que directamente damos verdadero a la condición, se sigue ejecutando para siempre. Podemos usar la sentencia break para romper este ciclo.

while( true )
do
   print("This loop will run forever.")
end