この初版は Lua 5.0 向けに執筆されました。後続のバージョンでもほとんど関連性は失われていませんが、いくつかの相違点があります。
第 4 版では Lua 5.3 がターゲットとされ、Amazon やその他の書店で購入できます。
本の購入は Lua プロジェクトのサポート にもつながります。


4.4 – breakreturn

breakreturn ステートメントにより、内部ブロックからジャンプアウトできます。

ループを終了するには break ステートメントを使用します。このステートメントはステートメントを含む内部ループ(forrepeat、または while)を中断します。ループの外側では使用できません。break の後は、プログラムは中断されたループの直後から実行を続行します。

return ステートメントは関数の結果を返すか、単純に関数を終了します。関数の最後に暗黙的な return があるので、関数が自然に終了し値を返さない場合は return を使用する必要はありません。

構文的な理由により、break または return はブロックの最後のステートメントとしてのみ表示できます(つまり、チャンクの最後のステートメントとして、または endelse、または until の直前)。たとえば、次の例では、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