切换风格

Wizard Sky California Sunset glow Black Cloud Beige Dragon Lavender NewYear City Snow Flowers London
收藏本站XSS平台字符串转换jsfuck
2012-11-24.[复制链接]
发表于 2012-11-24 21:29:43 | 显示全部楼层 |!read_mode!
函数的递归
递归函数即为自调用函数
但需要设置自调用的条件,若满足条件
则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行
好吧  上面是度娘找出来的资料
以及附带了下面代码

<?php
function test($n)
{
echo $n." ";
if($n>0)
{
test($n-1);
}else{
echo "<-->";
}
echo $n." ";
}
test(3);
?>
执行的结果是
3 2 1 0 <-->0 1 2 3
第一步执行的test(3)echo 3 然后3大于0 执行test(2) 然后还有后面没执行的echo 3
第二次执行的 test(2) echo 2 然后2大于0执行test(1) 然后还有后面没执行的echo 2
第三次执行的 test(0)echo 0  然后0>0不成立 所以输出后面的<-->  然后还有一个后面的echo  0
所以这时候  输出的结果为3 2 1 0 <-->0
但最终在浏览器我看到的是 3 2 1 0 <-->0 1 2 3
表示有点无解  度娘出来的东西也无解
。所以 求调教吧
  

嘿嘿 。悄悄地说  本屌丝下午 和一特意赶来看我的妹子在压马路。



已有 1 人评分威望 金币 贡献 收起 理由
店小二01 + 1 + 1 + 1 赞一个!

总评分: 威望 + 1  金币 + 1  贡献 + 1   查看全部评分

发表于 2012-11-24 22:28:25 | 显示全部楼层
刚才看了下,程序输出的是对的
我分析了下你感觉出错的原因可能有以下一点
①代码没有驼峰,只有一坨,自己把自己看晕了,所以以后写代码注意格式会让代码更有喜感
②漏掉了function中第一行和最后一行的输出逻辑
③看你最后一句估计今天过于兴奋或是兴奋后过于放松,做了什么见不得人的事了哈哈;P

  1. <?php
  2. test(3);

  3. function test($n){
  4.         echo $n." "; //这个会始终输出
  5.                 if($n>0){
  6.                         test($n-1);
  7.                 }else{
  8.                         echo "<--> ";//这里给你加了个空格显得对称些
  9.                 }
  10.         echo $n." ";//这个会始终输出(别忘了)
  11. }


  12. //1 0 0 1                                        //$n等于1
  13. //2 1 0 0 1 2                                //$n等于2
  14. //3 2 1 0 <--> 0 1 2 3                //$n等于3
  15. ?>
复制代码


这样看会不会更性感呐?代码其实是有灵性的,有驼峰会更有看下去的欲望,有陀没峰越看越疯;
最后建议这种程序按照不同的参数值多缕一遍流程,多打印几次输出会理解的更快些



操千曲而后晓声,观千剑而后识器。

代码区

GMT+8, 2020-10-28 14:12

Powered by Discuz! X2

© 2001-2018 Comsenz Inc.

回顶部