java之递归调用

递归就是自己调用自己,方法与方法之间,类与类之间都可以。所谓递归调用,就是一个方法自己调用自己。在使用递归调用的时候,应该声明一个操作的终结点。不然的话,你的递归程序会因栈空间不足而终止。

其实很好理解,下面举个例子。

public class Test{public static void main(String arg[]){System.out.println(method(5));}//递归函数public static int method(int n){if(n==1)// 声明的操作的终结点{return 1;}else{return n*method(n-1);}}}

解释:在这个中就使用了自己调用method自己调用自己的方法。在这个方法中,我们先是对它进行传参n,然后用if判断如果n=1结束。否则继续执行递归方法。这个递归直到5次结束。

内存的执行过程:

描述:method(5)需要method(4)的值,method(4)需要method(3)的值。。。。一直到method(1)有值往回返。

从这就可以看出:采用递归调用的时候会增加内存负担,因为每调用一次方法都要新开辟一段栈空间,直到该方法调用结束才释放。

但是递归结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,有些算法必须使用递归,用递归来讲比循环要简单明了!

有优点就有缺点,有的地方说要慎用!不过现阶段主要以学习为主,所以都要尝试,以后再研究它的缺陷。

回避现实的人,未来将更不理想。

java之递归调用

相关文章:

你感兴趣的文章:

标签云: