方法的递归与调用
一、递归初步
这几天又堕落了不少,看了一下关于Java中递归与调用部分,收货还是不少吧!
递归的定义:递归就是一些方法在使用的过程中要多次进行调用,当第二次使用到它本身时即可称作递归调用,但是递归也必须满足一定的条件,所以有这必不可少的要点:基本条件和递归子句。
递归的方式:1、直接调用:
class A {
methodA (){
......
methodA (); //****直接调用methodA()
}
}
2、间接调用:
Class B{
methodA1 () {
.......
methodA2 ();
}
methodA2 () {
.......
methodA1 () //****简介的调用methodA1()
}
}
对于一个类而言,必须要有一个结束递归的条件, 上面也提到了它的两个必要条件,这些条件的提出是因为我们都知道对于任何一个循环而言如果不在有限的时间内执行完,那么这个方法(函数)就是没有任何使用价值的,因为每一种语言在生活中都有自己的价值所在,对那些死循环的方法,在Java中,和C语言中一样,我们要尽力的去避免。
二、递归与循环的转换
对于一些递归而言,我们总是会遇到与循环的转化问题,那么怎样的递归能被转化呢?这些我们不能理所当然,要严格遵守它的原则,有时候是无法实现二者的相互的转化,因为递归中需要有参数的递归,而这个过程用循环来模拟有时候回很困难。但是有一种递归转换成循环还是比较容易,这种递归被称作是尾递归(这种递归的实现是在方法的最后),n! 是一种尾递归。所以可以用一般的循环进行代替。

浙公网安备 33010602011771号