我想學習遞歸,並寫了一個函數,它需要一個數字並將其計數到零,然後再次將其計數到原始數字,該函數起作用,但我不明白的原因是它爲什麼會起作用它確實如此。我記住了爲什麼在else語句之後的第一次打印輸出:「5 4 3 2 1」,然後數字是0,if語句輸出「0」。在這種情況之後,我不明白,因爲現在函數在else語句之後輸入第二個打印,並打印出「1 2 3 4 5」,這對我來說很奇怪。如果有人能向我解釋這一點,我將不勝感激。爲什麼這個遞歸函數像這樣工作?
<?php
function rec_downandup($num){
if($num == 0){
print '0 ';
}else{
print $num.' ';
rec_downandup($num-1);
print $num.' ';
}
}
rec_downandup(5);
?>
輸出
5 4 3 2 1 0 1 2 3 4 5
嘗試手動追蹤執行。 – 2014-09-25 13:27:46
那麼,5將通過並打印兩次......但在4之間會通過並打印兩次......但在這之間3將通過並打印兩次......等 – smerny 2014-09-25 13:28:27