黑马程序员技术交流社区

标题: 关于递归函数 [打印本页]

作者: 李竞还活着    时间: 2015-6-5 00:32
标题: 关于递归函数
本帖最后由 李竞还活着 于 2015-6-11 00:19 编辑

昨天看视频说循环一共有四类:for循环,while循环,do...while循环,以及不推荐使用的goto和if搭配使用的循环。
今天学习定义函数的时候学习到递归函数问题,我想问一下问什么递归函数不属于循环?我怎么就感觉它属于呢?
作者: 蜡笔小炎    时间: 2015-6-5 00:36
我觉得可能只是一层层的嵌套,所以不归为循环吧
作者: 晗修    时间: 2015-6-5 00:38
递归 是迭代 不是循环
作者: 李竞还活着    时间: 2015-6-5 00:45
晗修 发表于 2015-6-5 00:38
递归 是迭代 不是循环

能具体说一下他们的本质区别么?这个名词我也注意到了,但是还是分不出他们的区别,谢谢,共同努力
作者: yuang4074    时间: 2015-6-5 12:24
视频说的循环指的语法上怎么写,怎么实现。递归是循环的一种,它通过不停调用自身直到遇到终止条件实现循环的。关于迭代,递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.递归和迭代都是循环的一种。简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环。
作者: 李竞还活着    时间: 2015-6-5 18:13
yuang4074 发表于 2015-6-5 12:24
视频说的循环指的语法上怎么写,怎么实现。递归是循环的一种,它通过不停调用自身直到遇到终止条件实现循环 ...

好深奥,但是感觉很有道理。不过我又冒出来一个问题:像循环里的i++;sum+=i;之类的算不算迭代?我看也是累计
作者: yuang4074    时间: 2015-6-5 18:19
李竞还活着 发表于 2015-6-5 18:13
好深奥,但是感觉很有道理。不过我又冒出来一个问题:像循环里的i++;sum+=i;之类的算不算迭代?我看也 ...

算,两种说法。。。
作者: talent123    时间: 2015-6-5 18:30
一个是语法上的循环
递归是原理上产生的循环  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2