递归原理

743 阅读2分钟

递归函数介绍

  •        众所周知所谓的递归函数就是在函数体内调用本函数,但是使用递归函数一定要注意,处理不当就会进入死循环,递归函数只有在特定的情况下使用 。

递归函数的原理介绍

  •        接下来我通过一个简单的小demo来说明递归的原理,废话不多说直接上代码
   function computes(n){
        var i = 0;
        for(var c=1;c<=n;c++){
             i+=c;
        }
        return i
    }
  •        是不是看着很迷糊,没关系我们来分解下代码一步一步讲解你就明白了。
  •        首先我先定义了一个数值作为计算的初始值i=0,之后进行循环
for(var c=1;c<=n;c++){
   i+=c;
}
  •        把function(n)的n参数带入循环进行计算,用于n的阶加。
  •        把n带入递归,n循环调用自己:
  •        1.1+2
  •        2.3+3
  •        3.6+4
  •        4.10+5
  •        5.15+6
  •        ........
  •        100.4950+100
  •        通过不、不断地调用自己实现递归的调用,最后把最后的结果抛出return i这样外部就能取到i这个结果了,这里注意一下最好定义的函数不要和其他函数重名。
  •        想要查看就调用下面这段代码:
     window.onload=function(){
        var a=document.write(computes(100));
        console.log(a);
     }
  •        既能在页面上看到计算的结果也能在控制台看到打印出来的结果。
  •        最后再贴一下所有源码
 function computes(n){
        var i = 0;
        for(var c=1;c<=n;c++){
             i+=c;
        }
        return i
}
window.onload=function(){
        var a=document.write(computes(100));
        console.log(a);
}
  •        这样我们通过简单的几行代码就实现了递归的调用,有的人就想问了,你还没说递归的原理呢,其实我们通过上面的例子就可以了解到递归的原理,简单一句话概括就是函数的递归就是在函数中调用自身。概念就是这样了,就看你怎么灵活的调用了。
  •        如果还有不足的地方请大家指正,我会再尽心修改的。
  •        参考博文: blog.csdn.net/genius_yym/…