第一版是針對 Lua 5.0 編寫的。雖然在很大程度上仍然適用於後續版本,但有一些差異。
第四版針對 Lua 5.3,可以在 Amazon 和其他書店購買。
購買書籍,您也同時協助 支援 Lua 專案


4.4 – breakreturn

breakreturn 陳述式讓我們可以跳出內部區塊。

您使用 break 陳述式來結束迴圈。此陳述式會中斷包含它的內部迴圈(forrepeatwhile);它不能用於迴圈外。在中斷後,程式會從中斷迴圈後緊接的點繼續執行。

return 陳述式會傳回函式的偶發結果,或僅結束函式。在任何函式的結尾都有隱含的 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