English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Цикл for в языках программирования Lua может повторять выполнение指定的 инструкций, количество повторений можно контролировать в предложении for.
В языках программирования Lua есть два типа циклов for:
Численный цикл for
Генерический цикл for
Грамматика цикла for с числовыми значениями в языках программирования Lua:
for var=exp1,exp2,exp3 do <Исполнитель> end
var изменяется от exp1 до exp2, каждый раз изменяя var на шаг 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 function 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 использует функцию итератора для遍ения всех значений, что аналогично 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
Результат примера выше:
Воскресенье Понедельник Вторник Среда Четверг Пятница Суббота