更新時間:2019-11-11 16:10:10 來源:動力節點 瀏覽2719次
程序調用自身的編程技巧稱為遞歸(recursion)。遞歸做為一種算法在程序設計語言中廣泛應用。但是如果沒終止條件會造成死循環,所以遞歸代碼里要有結束自調自的條件。接下來通過一個案例來學習如何使用遞歸算法計算自然數之和,如例Example1.java。
publicclassExample1{
publicstaticvoidmain(String[]args){
intsum=getsum(4);//調用遞歸方法,獲得1~4的和
System.out.println("sum="+sum);//打印結果
}
//下面的方法使用遞歸實現求1~n的和
publicstaticintgetsum(intn){
if(n==1){
//滿足條件,遞歸結束
return1;
}
inttemp=getSum(n-1);
returntemp+n;
}
}
運行結果為:
sun=10
Example1.java中,定義了一個getSum()方法用于計算1~n之間自然數之和。例程中的12行代碼相當于在getSum()方法的內部調用了自身,這就是方法的遞歸,整個遞歸過在n==1時結束。整個遞歸過程中getsum()方法被調用了4次,每次調用時,n的值都會遞減。當n的值為1時,所有遞歸調用的方法都會以相反的順序相繼結束,所有的返回值會進行累加,最終得到結果10。
使用遞歸時需要注意的問題。
【1】遞歸就是方法里調用自身。
【2】在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。
【3】遞歸算法代碼顯得很簡潔,但遞歸算法解題的運行效率較低。所以不提倡用遞歸設計程序。
【4】在遞歸調用的過程中系統為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數過多容易造成棧溢出等,所以一般不提倡用遞歸算法設計程序。
【5】在做遞歸算法的時候,一定把握出口,也就是做遞歸算法必須要有一個明確的遞歸結束條件。這一點是非常重要的。其實這個出口就是一個條件,當滿足了這個條件的時候我們就不再遞歸了。
以上就是動力節點Java培訓機構小編介紹的“Java遞歸的意義以及用法”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。
零基礎自學java教程推薦
最新java視頻教程免費下載(從入門到精通):http://www.dabaquan.cn/video.html
零基礎java自學教程:http://www.dabaquan.cn/tutorial_java_se/
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習