当前位置:编程学习 > VB >>

循环和递归你喜欢那个?

最近看别人的一个程序,这哥们好像特别喜欢用递归,循环和递归都能实现的场合统统用递归实现。
程序倒是比用循环的方法看上去简洁一点,但很难一下子看懂。
这是个好习惯吗? 不是个好习惯。
代码应该简洁明了,增加可读性,最好符号自然语言的习惯,以及正常人的逻辑思维。
代码也能看出人的性格,有些人喜欢搞一些玄虚的东西,害人害己。 看效率。。。 并不是所有的软件都需要很高的效率

引用 2 楼 eamoon2008 的回复:
看效率。。。
vb中递归实现用的是 “栈”,还是“堆”,我不懂,哪位大侠能否解释下:
递归层数大了以后,所耗空间到什么级别会有把空间占满的风险?
或者是只和内存上限有关? 不加控制的递归通常会引起溢出堆栈空间错误信息。 过度使用递归会导致栈空间溢出 控制的好就 用递归。不过很难读,确实是个问题,有可能自己都看不懂 能用循环就不要用递归
引用 1 楼 dbcontrols 的回复:
不是个好习惯。
代码应该简洁明了,增加可读性,最好符号自然语言的习惯,以及正常人的逻辑思维。
代码也能看出人的性格,有些人喜欢搞一些玄虚的东西,害人害己。

我也是这么想的~~ 什么是简洁优雅的XX? 1、程序代码并非越短执行速度越快。
2、能不使用递归时尽量不使用递归,因为递归的效率低下,并且控制不好时容易堆栈溢出。
3、编程时尽量不要给自己留下不必要的潜在的麻烦。


优先使用循环。

有时使用递归是迫不得已。例如多层子目录搜索。
循环好用,但不必多层循环,多了也慢 通常情况下只用循环,以前见过别人写了三个递归互相嵌套调用(主要是因为需求很BT),一想起来那种代码脑袋都大   各有各的好处吧!
递归代码简洁,易于编译成高效代码;循环程序可读性好,一般说来,程序稍长一点。对现在的多核处理器来说,这两种编程方法差别不大。 递归的效率比循环还是要低不少的,至少在VB里是肯定的, 且不说什么堆栈, 循环是在过程内部的, 递归则还有调用过程的开销. 
如果嵌套的层数比较大,并且函数体(循环体)计算量并不大的话. 递归比循环要慢至少一个等量级. 
补充:VB ,  非技术类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,