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

Операторы break и return в Lua

Оператор break прерывает цикл (while, repeat или for), в теле которого встречается. В результате выполнения оператора break управление передаётся первой инструкции, следующей непосредственно за оператором цикла.
for i = 1,#a do -- ищем в массиве отрицательное значение
   if a[i] < 0 then -- если найдено...
      index = i -- сохраняем индекс найденного значения...
      break -- и прерываем цикл
   end
end
Оператор return возвращает результаты из функции (или блока).
function f (x)
   return x^2
end
Оператор return может просто завершать работу функции (блока), не возвращая никаких результатов.

Обратите внимание

  • Операторы break и return могут быть только последними операторами блока (иначе следующие за ними операторы никогда не выполнятся). Если действительно необходимо вставить return или break в середину блока, например, чтобы временно отключить выполнение части кода функции, эти операторы следует заключить в свой блок do–end.
    function f1 (x)
       return -- НЕВЕРНО!
       <другие операторы>
    end
    function f2 (x)
       do return end -- Правильно
       <другие операторы>
    end