全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

java方法遞歸是什么意思?

更新時(shí)間:2019-07-18 來(lái)源:黑馬程序員 瀏覽量:

方法的遞歸是指在一個(gè)方法的內(nèi)部調(diào)用自身的過(guò)程,遞歸必須要有結(jié)束條件,不然就會(huì)陷入無(wú)限遞歸的狀態(tài),永遠(yuǎn)無(wú)法結(jié)束調(diào)用。接下來(lái)通過(guò)一個(gè)案例來(lái)學(xué)習(xí)如何使用遞歸算法計(jì)算自然數(shù)之和,如例Example1.java。

public class Example1 {

    public static void main(String[] args) {

    int sum=getsum(4); //調(diào)用遞歸方法,獲得1~4的和

    System.out.println("sum="+sum); //打印結(jié)果

}

    //下面的方法使用遞歸實(shí)現(xiàn)求1~n的和

    public static int getsum(int n) {

    if(n==1){

    //滿(mǎn)足條件,遞歸結(jié)束

    return 1;

    }

    int temp=getSum(n-1);

    return temp+n;

    }

}

運(yùn)行結(jié)果為:

sun = 10

Example1.java中,定義了一個(gè) getSum()方法用于計(jì)算1~n之間自然數(shù)之和。例程中的12行代碼相當(dāng)于在 getSum()方法的內(nèi)部調(diào)用了自身,這就是方法的遞歸,整個(gè)遞歸過(guò)在n==1時(shí)結(jié)束。整個(gè)遞歸過(guò)程中 getsum()方法被調(diào)用了4次,每次調(diào)用時(shí),n的值都會(huì)遞減。當(dāng)n的值為1時(shí),所有遞歸調(diào)用的方法都會(huì)以相反的順序相繼結(jié)束,所有的返回值會(huì)進(jìn)行累加,最終得到結(jié)果10。


猜你喜歡:

java面向?qū)ο笏枷朐趺蠢斫?


分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!