Цикл for в Lua

Lua 循环Циклы в Lua

В языке программирования Lua оператор цикла for может многократно выполнять заданные операторы, а количество повторений можно контролировать в операторе for.

Оператор for в языке программирования Lua имеет две основные категории:

  • Числовой цикл for
  • Обобщённый цикл for

Числовой цикл for

Синтаксис числового цикла for в языке программирования Lua:

for var=exp1,exp2,exp3 do  
    <执行体>  
end  

var изменяется от exp1 до exp2, увеличиваясь на exp3 при каждом изменении, и выполняет один раз"тело цикла"exp3 необязателен; если не указан, по умолчанию равен 1.

Пример

Пример

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

Три выражения for вычисляются один раз перед началом цикла и больше не вычисляются позже. Например, f(x) выше выполняется только один раз перед началом цикла, и его результат используется в последующих итерациях цикла.

Проверка выглядит следующим образом:

Пример

#!/usr/local/bin/lua  
функция f(x)  
    print("function")  
    return x*2  
end  
for i=1,f(5) do print(i)  
end

Вывод приведенного выше примера:

function
1
2
3
4
5
6
7
8
9
10

Видно, что функция f(x) выполняется только один раз перед началом цикла.


Обобщённый цикл for

Обобщённый цикл for перебирает все значения через функцию-итератор, аналогично оператору foreach в Java.

Синтаксис обобщённого цикла for в языке программирования Lua:

--打印数组a的所有值  
a = {"one", "two", "three"}
for i, v in ipairs(a) do
    print(i, v)
end 

i — это значение индекса массива, а v — значение элемента массива, соответствующее индексу. ipairs — это функция-итератор, предоставляемая Lua, используемая для перебора массивов.

Пример

Перебор массива days:

Пример

#!/usr/local/bin/lua  
days = {"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"}  
for i,v in ipairs(days) do  print(v) end  

Вывод приведенного выше примера:

Sunday
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday

Lua 循环Циклы в Lua

Другие расширения