更新時間:2022-05-19 10:43:26 來源:動力節點 瀏覽1752次
在本教程中,動力節點小編將告訴大家Java遞歸函數及其優缺點。
在 Java 中,調用自身的方法稱為Java遞歸方法。而且,這個過程稱為遞歸。
一個物理世界的例子是放置兩個相互面對的平行鏡子。它們之間的任何對象都將被遞歸反射。
遞歸如何工作?
在上面的例子中,我們recurse()從方法內部調用了main方法。(正常的方法調用)。而且,在 recurse() 方法中,我們再次調用了相同的遞歸方法。這是一個遞歸調用。
為了停止遞歸調用,我們需要在方法內部提供一些條件。否則,該方法將被無限調用。
因此,我們使用if...else 語句(或類似方法)來終止方法內的遞歸調用。
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);
}
}
輸出:
4 階乘 = 24
在上面的示例中,我們有一個名為factorial(). factorial()是從方法中調用的main()。與數字作為參數傳遞的變量。
在這里,請注意聲明,
return n * factorial(n-1);
該factorial()方法正在調用自身。最初, n 的值是 4 inside factorial()。在下一次遞歸調用期間,將 3 傳遞給該factorial()方法。這個過程一直持續到n等于 0。
什么時候n等于 0,if語句返回 false,因此返回 1。最后,將累積的結果傳遞給main()方法。
當進行遞歸調用時,變量的新存儲位置會在堆棧上分配。當每次遞歸調用返回時,舊的變量和參數都會從堆棧中刪除。因此,遞歸通常使用更多內存并且通常很慢。
另一方面,遞歸解決方案更簡單,編寫、調試和維護的時間更少。如果大家想了解更多相關知識,不妨來關注一下動力節點的Java教程,里面的課程內容細致全面,通俗易懂,適合小白學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習