遞歸函數為自調用函數,在函數體內直接或直接自個調用自個,但需求設置自調用的條件,若滿意條件,則調用函數自身,若不滿意則停止本函數的自調用,然后把目前流程的主控權交回給上一層函數來履行,也許這么給我們解說,仍是很難理解,比如
function test ($n){ echo $n." "; if($n>0){ test($n-1); }else{ echo ""; } echo $n." "}test(2)
這個比如終究的輸出結果是
2 1 0<–>0 1 2
我解說下,為何輸出是這么的
第一步,履行test(2),echo 2,然后由于2>0,履行test(1), 后邊還有沒來得及履行的echo 2
第二步,履行test(1),echo 1,然后由于1>0,履行test(0),相同后邊還有沒來得及履行的 echo 1
第三步,履行test(0),echo 0,履行test(0),echo 0, 此刻0>0的條件不滿意,不在履行test()函數,而是echo “”,并且履行后邊的 echo 0
此刻函數現已不再調用自個,開端將流程的主控權交回給上一層函數來履行,也即是開端履行剛剛一切test()函數沒來得及輸出的最終一個echo,0的一層是1也即是輸出1 1的上一層是2 也即是輸出2 2沒有山一層 所以呢 輸出的內容即是2 1 0<–>0 1 2
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。
新聞熱點
疑難解答
圖片精選