何为递归
方法的递归就是指一个方法直接或间接出现自己调用自己的情况
package Method.recursion; public class Recursion01 { public static void main(String[] args) { T t = new T(); t.test(4); } } class T{ public void test(int n){ if(n > 2){ test(n - 1); } System.out.println("n = " + n); } }
下面就是最终运行结果
递归的例子
计算阶乘
package Method.recursion; public class RecursionExer1 { public static void main(String[] args) { exer numb = new exer(); int result = numb.factorial(3); System.out.println(result); } } class exer{ public int factorial(int n){//计算n!的值 if (n == 1){ return 1; }else { return factorial(n - 1) * n; } } }
递归的重要原则:
1.执行一个方法时,就创建一个新的受保护的独立空间(栈空间)
2.方法内的局部变量是独立的,不会相互影响,比如上面写的n变量
3.递归必须向退出递归的条件逼近
4.当有一个方法执行完毕,或者遇到 return,就会返回,返回遵循谁调用就把结果返回给 谁,同时当方法执行完毕或者返回时,该方法也就执行完毕了