【发布时间】:2014-09-25 13:25:08
【问题描述】:
我正在尝试学习递归并编写了一个函数,该函数接受一个数字并将其倒数到零,然后再次将其计数到原始数字,该函数有效,但我不明白它为什么有效就像它一样。我理解为什么 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
【问题讨论】:
-
尝试手动跟踪执行。
-
好吧,5 会通过并打印两次...但在这之间 4 会通过并打印两次...但在这之间 3 会通过并打印两次。 ..等
标签: php algorithm recursion computer-science