PHP递归函数问题
<?phpfunctionfun($n){if($n>2){fun(--$n);//为什么这里加fun()和把fun(--$n)写成fun($n--)得出来的结果为什么是...
<?php
function fun($n){
if($n>2){
fun(- -$n); // 为什么这里加fun() 和把fun(- -$n)写成fun($n- -)得出来的结果为什么是出错
echo '$n:'.$n."<br>";
}
fun(4);
?> 展开
function fun($n){
if($n>2){
fun(- -$n); // 为什么这里加fun() 和把fun(- -$n)写成fun($n- -)得出来的结果为什么是出错
echo '$n:'.$n."<br>";
}
fun(4);
?> 展开
4个回答
展开全部
乖乖,你没弄明白什么是递归哦!在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。你的出口在那里呢?同样$n--和--$n的概念不同,表达的意思也不同。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
--$n 是 $n-1=3 第一次传给fun的值是 3,$n--,第一次传的是4,以后都是4,所以死循环了。
追问
不是说$n--到了下一条代码的时候 它会自动增加1么
追答
可是你是传递的值啊。你一直在传值4呢。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fun($n--) 你写成这个以后就变成了一个死循环。
追问
为什么会这样呢? 能不能把构图写出来。让我想一想、谢谢了
追答
什么意思,我不太明白,你这个出错是因为少写了一个反大括号,而且 --$n 而不是- - $n ,中间不能有空格,要不不能自减
--$n 改成 $n-- 会变成死循环,所以会报错,
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你代码有问题啊。差一个大括号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询