7. 遞回 (Recursive)
遞迴是透過函式呼叫自己來達成目的的一種程式編成技巧,以下這個例子就是利用遞迴來實現累加的功能,如果將遞迴式展開就會是:sum(n) = n + (n-1) + (n-2) …. + 1。
local function sum(n)
if n == 1 then
return 1
end
return n + sum(n-1)
end
print(sum(10))
注意遞迴必須設立終止條件,否則遞迴將會無法停止,進而導致程式無法繼續執行或是堆疊溢位(stack overflow) 的發生。在以上累加例子中,停止條件發生在 n = 1 時,此時不需 n-1 之前的累加結果,便直接回傳 1。