lua 中return與break的用法

2021-10-08 16:35:14 字數 1290 閱讀 7629

記錄:lua提供的跳出關鍵字:break 和 return,lua不提供continue.

語句break用於跳出迴圈,終止for、repeat、while 三種迴圈的執行,並跳出當前迴圈體,繼續執行當前迴圈之後的語句,在迴圈外部不可用。例:

--[ 定義變數 --]

a = 10

--[ while 迴圈 --]

while( a < 20 )

do print("a 的值為:", a)

a=a+1

if( a > 15)

then

--[ 使用 break 語句終止迴圈 --]

break

endend

1,return 只能寫在語句塊的最後,一旦執行了return 語句,該語句之後的所有語句都不會再執行。若要寫在函式中間,則只能寫在乙個顯式的語句塊內。

local function (x, y)

return x + y

--因為前面有個return,若不注釋該語句,則會報錯

endlocal function is_positive(x)

if x > 0 then

return x .. " is positive"

else

return x .. " is non-positive"

end--由於return只出現在前面顯式的語句塊,所以此語句不注釋也不會報錯

--,但是不會被執行,此處不會產生輸出

print("function end!")

endsum = add(10, 20)

print("the sum is " .. sum) -->output:the sum is 30

answer = is_positive(-10)

print(answer) -->output:-10 is non-positive

即:return可分別放在elseif, else, end前面,即拐點 結束前;在迴圈中使用則放在迴圈結束前.

2,若想在某個函式的中間提前 return ,可以將 return 放在乙個 do … end **塊中:

local function foo()

print("before")

do return end

print("after") -- 這一行語句永遠不會執行到

end

注意:上述例項中return如果不放在do … end中將會報錯,因為return只能放在函式的最後。

AJPFX辨析continue與break的區別

1.break 1 結束當前整個迴圈,執行當前迴圈下邊的語句。忽略迴圈體中任何其它語句和迴圈條件測試。2 只能跳出一層迴圈,如果你的迴圈是巢狀迴圈,那麼你需要按照你巢狀的層次,逐步使用break來跳出。逐層判斷,逐步跳出 3 break在迴圈體內,強行結束迴圈的執行,也就是結束整個迴圈過程,不再判斷...

lua 詭異 的return用法

在lua中,return的用法比較 詭異 為什麼這麼說呢,因為它只能用在block結束的地方,不能用在block的乙個中間部分.例如 function a i 1 return i 這裡會報錯,提示return後面必須是end,意思是既然你要return了,那麼就結束這個塊吧.i 2 end 例如 ...

lua 詭異 的return用法

德哥摘要 在lua中,return的用法比較 詭異 為什麼這麼說呢,因為它只能用在block結束的地方,不能用在block的乙個中間部分.例如function a i 1 return i 這裡會報錯,提示return後面必須是end,意思是既然你要return了,那麼就結束這個塊吧.在lua中,r...