Программирование на Lua | ||
Часть I. Язык Глава 4. Операторы |
Операторы break и return позволяют выйти из блока до его естественного завершения.
Оператор break используется для завершения цикла. Этот оператор прерывает внутренний цикл (for, repeat, or while), содержащий его; онне может быть использован вне цикла. После прерывания, программа продолжает выполнение с места, следующего сразу после цикла.
Оператор return возвращает результаты работы функции или просто завершает выполнение функции. Он подразумевает переход в конец функции, т.е нет необходимости выхова данного оператора в случае естественного завершения функции без возврата к.-л. значения в основную программу.
В соответствии с синтаксическими ограничениями, break или return могут применяться лишь как последний элемент блока (другими словами, как последний элемент chunk'а или непосредственно перед end, else или until). В следующем примере break является последним оператором блока then.
local i = 1 while a[i] do if a[i] == v then break end i = i + 1 endОбычно, это все места, где используются рассматриваемые операторы, т.к. любые други операторы, следующие за ними, являются недостижимыми. Иногда, однако, может быть удобно поместить return (или break) в середине блока; например, при отладке функции, когда нежелательно выполнение к.-л. группы операторов. В таких случаях необходимо заключить операторы прерывания в явный блок do:
function foo () return --<< СИНТАКСИЧЕСКАЯ ОШИБКА -- 'return' - последний элемент с следующем блоке do return end -- OK ... -- операторы не достигаются end
Copyright © 2003-2004 Roberto Ierusalimschy. All rights reserved. | Перевод на русский Artem13 |