递归纠错

纠正下面程序的错误之处:

原程序:

<?php 
function test($i) 
{ 
$i-=4; 
if($i<3) 
{ 
return $i; 
} 
else 
{ 
test($i); 
} 
 
} 
 
echo test(30);

解说:这是一个PHP递归函数的问题,其实是一个很简单的问题。问题出在PHP递归函数的返回值上。这段代码看起来没有问题,其实有else里面是有问题的。在这里执行的test没有返回值。所以虽然满足条件$i<3时return$i整个函数还是不会返回值的。对上面的PHP递归函数做如下修改:

<?php 
function test($i) 
{ 
$i-=4; 
if($i<3) 
{ 
return $i; 
} 
else 
{ 
return test($i); //需要return
} 
 
} 
 
echo test(30);

发表评论

电子邮件地址不会被公开。 必填项已用*标注