理解递归与循环
一、递归与循环的对比
-
递归会带来大量的函数调用。这是不好的
-
在计算环节特别大的前提下,递归就是不好的,因为递归是先调用,再计算。
- 在大量计算的前提下可能会造成栈溢出(StackOverFlow)
- 如下图:
-
循环是先计算再调用,计算完后会调用的方法会从栈中抹去,最后将结果输出
- 能不用递归就不用递归
- 小计算可以考虑用递归,大计算就不考虑了
二、递归讲解
1、概念
-
A方法调用B方法,我们很容易理解
-
递归就是:A方法调用A方法!就是自己调用自己
2、递归的用处
-
递归策略只需要少量的程序就可以描述出解题过程所需要的多次重复计算,大大减少了程序的代码量
-
递归的能力在于用有限的语句来定义对象的无限集合
3、递归结构包含两个部分
-
递归头:什么时候不调用自身方法。如果没有头,将陷入死循环
-
递归体:什么时候需要调用自身方法
4、代码如下
5、递归的坏处
-
递归会带来大量的函数调用。这是不好的
-
在计算环节特别大的前提下,递归就是不好的,因为递归是先调用,再计算。循环是先计算再调用
三、循环讲解
1、while 循环
-
基本结构
1 while( 布尔表达式 ){ 2 //循环结构 3 }