概念:一个方法体内调用它自身,被称为方法递归。方法递归包含了一种隐式的循环,它会重复执行某段代码,但这种重复执行无须循环控制。
package 包名;
public class 类名 {
public static void main(String[] args) {
//输出fn(10)的结果
System.out.println(fn(10));
}
private static int fn(int n) {
if (n == 0) {
return 1;
} else if (n == 1) {
return 1;
} else {
//方法中调用它自身,就是方法递归
return 2 * fn(n - 1) + fn(n - 2);
}
}
}
package Test01;
public class Recursive {
public static void main(String[] args) {
//输出fn(10)的结果
System.out.println(fn(10));
}
private static int fn(int n) {
if (n == 0) {
return 1;
} else if (n == 1) {
return 1;
} else {
//方法中调用它自身,就是方法递归
return 2 * fn(n - 1) + fn(n - 2);
}
}
}
注意事项:当一个方法不断的调用它本身时,必须在某个时刻方法的返回值是确定的,就是不再调用它本身,否则这种递归就变成了死循环。因此定义递归方法时有一条最重要的规定:递归一定要向以已知方向递归