English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Bucle for Lua

Bucles de Lua

Las sentencias de bucle for en Lua pueden repetir la ejecución de una instrucción específica, y la cantidad de repetición puede controlarse en la sentencia for.

En el lenguaje de programación Lua, las sentencias for tienen dos grandes categorías:

  • Bucle for numérico

  • Bucle for genérico

Bucle for numérico

Formato de sintaxis de bucle for numérico en el lenguaje de programación Lua:

for var=exp1,exp2,exp3 do  
    <Cuerpo de ejecución>  
end

var desde exp1 cambiar a exp2, cada cambio con exp3 Para el aumento del paso var, y ejecutar una vez "Cuerpo de ejecución".exp3 es opcional, si no se especifica, se usa el valor predeterminado de1.

Ejemplo en línea

for i=1,f(x) do
    print(i)
end
 
for i=10,1,-1 do
    print(i)
end

Las tres expresiones de for se evalúan una vez al inicio del bucle y no se evalúan nuevamente. Por ejemplo, f(x) se ejecuta solo una vez al inicio del bucle y su resultado se usa en el bucle posterior.

Verificación:

#!/usr/local/bin/lua  
function f(x)  
    print("function")  
    return x*2   
end  
for i=1,f(5) do print(i)  
end

El resultado de la salida del ejemplo anterior es:

function
1
2
3
4
5
6
7
8
9
10

Se puede ver que la función f(x) se ejecuta solo una vez al inicio del bucle.

Bucle for genérico

El bucle for genérico itera todos los valores a través de una función de iterador, similar a la sentencia foreach en Java.

El formato de sintaxis del bucle for genérico en el lenguaje de programación Lua:

--Imprimir todos los valores del array a  
a = {"uno", "dos", "tres"}
for i, v in ipairs(a) do
    print(i, v)
end

i es el valor de índice del array, v es el valor del elemento del array en el índice correspondiente. ipairs es una función de iterador proporcionada por Lua, usada para iterar arrays.

Ejemplo en línea

Bucle de array days:

#!/usr/local/bin/lua  
days = {"Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"}  
for i, v in ipairs(days) do print(v) end

El resultado de la salida del ejemplo anterior es:

Sábado
Domingo
Lunes
Martes
Miércoles
Jueves
Sábado

Bucles de Lua