Раздел: CronosPRO Дата редакции: 11.07.2013 id статьи: 1524

Цикл с предусловием (while) в Lua

Оператор while предназначен для организации циклов с предусловием и имеет следующий вид:
while <condition> do-- тело цикла
end
Перед каждой итерацией цикла проверяется условие <condition>:
  • если условие ложно, цикл завершается и управление передаётся первому оператору, следующему за оператором while;
  • если условие истинно, выполняется тело цикла, после чего все действия повторяются.
i = 10; t = {}
while i > 0 do -- цикл от 10 до 1
   t[i] = "поле "..i
   i = i - 1
end
Для выхода из цикла до его завершения можно использовать оператор break.
a = {3, 5, 8, -6, 5} 
i = #a
while i > 0 do -- ищем в массиве отрицательное значение
   if a[i] < 0 then break end -- если найдено, прерываем цикл
   i = i - 1 -- иначе переходим к следующему элементу
end
if i > 0 then
   MsgBox ("Индекс отрицательного значения: "..i)
else
   MsgBox ("Массив не содержит отрицательных значений")
end

Примечание