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。

results matching ""

    No results matching ""