第一版是为 Lua 5.0 撰写的。虽然在很大程度上仍然适用于更高版本,但仍有一些差异。
第四版针对 Lua 5.3,可在 亚马逊 和其他书店购买。
购买本书,您还将帮助 支持 Lua 项目


4.4 – breakreturn

breakreturn 语句允许我们从内部块中跳出。

使用 break 语句完成循环。此语句会中断包含它的内部循环(forrepeatwhile);它不能在循环外部使用。在 break 之后,程序将从中断循环的紧后点继续运行。

return 语句从函数返回偶尔的结果或仅仅完成函数。在任何函数的末尾都有一个隐式 return,因此,如果函数自然结束,而不返回任何值,则无需使用它。

出于语法原因,breakreturn 只能作为块的最后一条语句出现(换句话说,作为块中的最后一条语句或在 endelseuntil 之前)。例如,在下一个示例中,breakthen 块的最后一条语句。

    local i = 1
    while a[i] do
      if a[i] == v then break end
      i = i + 1
    end
通常,这些是我们使用这些语句的地方,因为紧随其后的任何其他语句都不可达。但是,有时在块的中间编写 return(或 break)可能很有用;例如,如果您正在调试函数并希望避免执行该函数。在这种情况中,您可以在语句周围使用显式的 do
    function foo ()
      return          --<< SYNTAX ERROR
      -- `return' is the last statement in the next block
      do return end   -- OK
      ...             -- statements not reached
    end