В скриптовом языке QLua есть 3 вида циклов (for, while и repeat):
1. FOR - DO - END имеет 2 типа:
-- 1-й тип: -- Цикл сделает 10 итераций, увеличивая каждый раз переменную i на 1, т.е. i будет меняться от 0 до 9, -- переменная i является локальной для цикла, т.е. видна только внутри него for i = 0, 9, 1 do A = A*2; end; -- Данный цикл можно было записать и без 3-го аргумента, потому что по умолчанию он равен 1 for i = 0, 9 do A = A*2; end; -- Но вместо 1 можно использовать любое другое число, или выражение, результат которого является числом -- Например так, цикл сделает только 5 итераций и остановится, потому что в 6-й итерации i будет равна 10 (0,2,4,6,8,10), а 10 > 9 for i = 0, 9, 2 do A = A*2; end; -- Здесь используется выражение, т.е. каждая итерация увеличивает переменную i на 2 for i = 0, 9, 1+1 do A = A*2; end; -- Можно сделать цикл на убывание for i = 9, 0, -1 do A = A*2; end; -- 2-й тип: -- Такой вариант при каждой итерации записывает в i индекс, а в value значение элемента из массива Array, -- перебирая, таким образом, все элементы в массиве типа {[1] = 10, [2] = "Текст", [3] = 50} for i,value in ipairs(Array) do -- здесь какой-то блок кода end; -- Такой вариант при каждой итерации записывает в key ключ, а в value значение элемента из массива Array, -- перебирая, таким образом, все элементы в массиве типа {red = "Красный", green = "Зеленый", blue = "синий"} for key,value in pairs(Array) do -- здесь какой-то блок кода end; |
2.WHILE - DO - END
while A < 10 do -- здесь какой-то блок кода end; -- Читается так: ПОКА выполняется условие A меньше 10 ВЫПОЛНЯТЬ(делать) блок кода КОНЕЦ |
3.REPEAT - UNTIL
repeat -- здесь какой-то блок код until A < 10 -- Читается так: ПОВТОРЯТЬ блок кода ДО ТОГО, пока не выполняется условие A меньше 10 |
Для того, чтобы досрочно выйти из любого, вышеописанного, цикла служит оператор break.
Пример использования:
for i = 0, 9, 1 do if i >= 2 then break; end; -- цикл завершится на 3-й итерации (0,1,2) end; |
Если у Вас появились какие-то вопросы, задайте их в комментариях под статьей !!!