<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Java 遞歸 > 原文: [https://www.programiz.com/java-programming/recursion](https://www.programiz.com/java-programming/recursion) #### 在本教程中,您將學習 Java 遞歸函數及其優缺點。 在 Java 中,調用自身的[方法](/java-programming/methods "Java Methods")被稱為遞歸方法。 并且,此過程稱為遞歸。 一個物理世界的例子是放置兩個相互面對的平行反射鏡。 它們之間的任何對象都將遞歸地反映出來。 * * * ### 遞歸如何工作? ![A function is calling itself](https://img.kancloud.cn/6d/f3/6df3d7005794992d2f6fd7e5d4d2fae6_416x247.png "Working of Java Recursion") Java 遞歸的原理 在上面的示例中,我們從`main`方法內部調用了`recurse()`方法。 (正常方法調用)。 并且,在`recurse()`方法內部,我們再次調用相同的`recurse`方法。 這是一個遞歸調用。 為了停止遞歸調用,我們需要在方法內部提供一些條件。 否則,該方法將被無限調用。 因此,我們使用[`if...else`語句](/java-programming/if-else-statement "Java if...else")(或類似方法)來終止方法內部的遞歸調用。 * * * ## 示例:使用遞歸的階乘 ```java class Factorial { static int factorial( int n ) { if (n != 0) // termination condition return n * factorial(n-1); // recursive call else return 1; } public static void main(String[] args) { int number = 4, result; result = factorial(number); System.out.println(number + " factorial = " + result); } } ``` **輸出**: ```java 4 factorial = 24 ``` 在上面的示例中,我們有一個名為`factorial()`的方法。 從`main()`方法中調用`factorial()`。`number`變量作為參數傳遞。 在這里,請注意以下聲明: ```java return n * factorial(n-1); ``` `factorial()`方法正在調用自身。 最初,`factorial()`內部的 n 值為 4。 在下一個遞歸調用期間,將 3 傳遞給`factorial()`方法。 該過程一直持續到`n`等于 0。 當`n`等于 0 時,`if`語句返回`false`,因此返回 1。 最后,累積的結果將傳遞給`main()`方法。 * * * ## 遞歸程序的工作原理 下圖將使您更好地了解如何使用遞歸執行階乘程序。 ![Finding the factorial of a number using recursion](https://img.kancloud.cn/a0/c8/a0c8841dacd30819de113478b3908589_456x1017.png "Factorial Program using Recursion") 使用遞歸的階乘程序 * * * ## 遞歸的優缺點 進行遞歸調用時,將在棧上分配新的變量存儲位置。 隨著每個遞歸調用的返回,舊的變量和參數將從棧中刪除。 因此,遞歸通常使用更多的內存,并且通常很慢。 另一方面,遞歸解決方案要簡單得多,并且花費更少的時間來編寫,調試和維護。 推薦閱讀:[遞歸的優缺點是什么?](https://stackoverflow.com/questions/5250733/what-are-the-advantages-and-disadvantages-of-recursion)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看