循环和递归你喜欢那个?
最近看别人的一个程序,这哥们好像特别喜欢用递归,循环和递归都能实现的场合统统用递归实现。程序倒是比用循环的方法看上去简洁一点,但很难一下子看懂。
这是个好习惯吗? 不是个好习惯。
代码应该简洁明了,增加可读性,最好符号自然语言的习惯,以及正常人的逻辑思维。
代码也能看出人的性格,有些人喜欢搞一些玄虚的东西,害人害己。 看效率。。。 并不是所有的软件都需要很高的效率
vb中递归实现用的是 “栈”,还是“堆”,我不懂,哪位大侠能否解释下:
递归层数大了以后,所耗空间到什么级别会有把空间占满的风险?
或者是只和内存上限有关? 不加控制的递归通常会引起溢出堆栈空间错误信息。 过度使用递归会导致栈空间溢出 控制的好就 用递归。不过很难读,确实是个问题,有可能自己都看不懂 能用循环就不要用递归
我也是这么想的~~ 什么是简洁优雅的XX? 1、程序代码并非越短执行速度越快。
2、能不使用递归时尽量不使用递归,因为递归的效率低下,并且控制不好时容易堆栈溢出。
3、编程时尽量不要给自己留下不必要的潜在的麻烦。
优先使用循环。
有时使用递归是迫不得已。例如多层子目录搜索。
循环好用,但不必多层循环,多了也慢 通常情况下只用循环,以前见过别人写了三个递归互相嵌套调用(主要是因为需求很BT),一想起来那种代码脑袋都大 各有各的好处吧!
递归代码简洁,易于编译成高效代码;循环程序可读性好,一般说来,程序稍长一点。对现在的多核处理器来说,这两种编程方法差别不大。 递归的效率比循环还是要低不少的,至少在VB里是肯定的, 且不说什么堆栈, 循环是在过程内部的, 递归则还有调用过程的开销.
如果嵌套的层数比较大,并且函数体(循环体)计算量并不大的话. 递归比循环要慢至少一个等量级.
补充:VB , 非技术类