大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 常見問題 Javase編程入門教程:方法的遞歸調用

Javase編程入門教程:方法的遞歸調用

更新時間:2020-03-05 10:23:09 來源:動力節點 瀏覽2048次

  棧

  提到方法的遞歸調用,需要先說一下棧的存儲概念。

  棧是一個先進后出的壓入(push)和彈出(pop)式數據存儲結構。若想獲取到棧底的對象,就必須先將這個對象上面的所有的對象全部從棧中移除,否則無法獲取棧底的對象。

  我們來看看程序中棧是如何工作的,當一個方法(調用者)調用另一個方法(被調用者)時,將會將調用者的參數和返回值一起壓入到棧中,此時調用者方法處于棧頂的位置,當調用者執行到調用方法的語句時,此時調用者方法將不會繼續執行,即將執行被調用者方法,那么被調用者就會與參數返回值一起壓入到棧中,此時被調用者處于棧頂的位置,所以此時先執行被調用者方法。直到被調用者方法執行結束,所有的參數以及局部變量會隨著方法的執行結束一起彈出棧空間,此時被調用者方法的返回值將會被帶出方法,數據不會隨著方法的出棧而消失,而是會落入到此時棧頂的方法中,所以方法的返回值是返回到方法的調用處。

Javase編程入門教程:方法的遞歸調用

  下圖是以上代碼執行過程中,棧空間中存儲的變化:

Javase編程入門教程:方法的遞歸調用

  方法的遞歸調用

  遞歸調用是一種特殊的嵌套調用,是某個方法直接或間接的調用自己,實際上相當于是循環執行功能代碼。換句話說,就是可以使用方法遞歸調用完成的功能,同樣也可以使用循環完成。

  方法遞歸調用的分類

  直接遞歸:現有fun方法,在fun方法中調用fun方法,這種調用方式稱為直接遞歸調用。

  間接遞歸:現有fun1方法和fun2方法,在fun1方法中調用fun2方法,在fun2方法中調用fun1方法,實際并沒有在fun1方法中直接調用自己,而是調用了fun2方法,間接的調用了fun1方法,這種調用方式稱為間接遞歸調用。

  遞歸調用的案例

  案例:設計一個方法,使用循環計算一個整數的階乘結果。

Javase編程入門教程:方法的遞歸調用

  當然,這個案例也可以使用方法的遞歸調用來完成,關于這個問題使用遞歸調用完成時,與數學中的一類題目類似:

Javase編程入門教程:方法的遞歸調用

  上圖的數學問題,若想計算解集的話,需要將x的值帶入到表達式中,但是對于x的不同取值范圍,需要使用不同的表達式計算結果。對于這個數學問題的計算過程,再次我們就不在演示。

  若使用遞歸調用的方法計算一個整數的階乘結果時,我們已知n的階乘計算方法是從1開始乘一直乘到n為止,所以1的階乘結果是1。那么計算n的階乘,當n>1時,n的階乘等于n乘n-1的階乘;當n=1時,n的階乘等于1。通過分析,請我們可以使用分支結果完成分析過程中的:當...則...,當...則...

  我們可以將遞歸調用寫成一下格式的分段函數:

Javase編程入門教程:方法的遞歸調用

Javase編程入門教程:方法的遞歸調用

  遞歸調用中的返回值

  由于方法的返回值返回到方法的調用處,所以方法遞歸調用返回時是一層一層的向外返回。

  我們都玩過歡樂球,歡樂球中灌了水,再將歡樂球放進一個盛水的小玻璃缸中,小玻璃缸放進一個大玻璃缸中,將歡樂球中捅破時,歡樂球中的水一定是進入到小玻璃缸中,而不是直接進入大玻璃缸中。

  下圖是遞歸調用計算階乘的返回值的圖,返回值一定是一層一層向外返回,而不是最內層的返回整個方法結束。

Javase編程入門教程:方法的遞歸調用

  方法壓棧與方法遞歸

  以上敘述我們說過,一個方法在執行時,會壓入棧中,而遞歸調用相當于多次調用同一個方法,那么遞歸幾次,就會在棧中開辟幾個相同大小的空間,所以使用遞歸調用時,比較好性能,我們可以通過循環來完成遞歸完成的功能。

      以上就是動力節點Java培訓機構小編介紹的“Javase編程入門教程:方法的遞歸調用”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲一区综合 | 日本爱爱免费视频 | 97精品视频在线观看 | 伊人影院99| 久久久精品 | 午夜干b| 国产欧美亚洲另类第一页 | 91麻豆精品国产91久久久久 | 神马啪啪 | 五十路一区二区三区视频 | 手机福利片 | 久操免费在线视频 | 欧美一级毛片一免费 | 国产精品456 | 亚洲免费精品视频 | 久久在线免费观看 | 久久99精品久久久久久野外 | 国产日韩一区二区三区 | 羞羞视频免费网站 | 在线观看人成网站深夜免费 | 狠狠躁夜夜躁人人爽天天段 | 无遮挡一级毛片呦女视频 | 114一级毛片免费观看 | 激情五月综合婷婷 | 国产精品一区二区资源 | 一级成人毛片免费观看欧美 | www神马我不卡影院免费观看 | 99香蕉网| 免费看片黄| 一区二区三区无码高清视频 | 久久综合成人网 | 久久频这里精品香蕉久久 | 久久国产亚洲欧美日韩精品 | 亚洲一区免费看 | 久久www免费人成看片入口 | 欧美在线成人午夜影视 | 97理论三级九七午夜在线观看 | 国产丶欧美丶日韩丶不卡影视 | 天天干天天干天天干 | 伊色综合久久之综合久久 | 日本一级成人毛片免费观看 |