Java 递归
递归:自己调用自己
1 递归结构
- 递归头:什么时候不调用自身方法。--没有头,将陷入死循环
- 递归体:什么时候需要调用自身方法
2 例1-死循环
死循环,导致栈溢出
package com.study;
public class T {
public static void main(String[] args) {
T t = new T();
t.test();
}
public void test(){
test();
}
}

PS:java 是栈机制
3 例2
package com.study;
public class T {
public static void main(String[] args) {
System.out.println(f(3));
}
//1! 1
//2! 2*1==>2*f(2-1)
//3! 3*2*1==>3*f(3-1)
//5! 5*4*3*2*1
//递归计算阶乘
public static int f(int n) {
if (n == 1) {
return 1;
} else {
return n * f(n - 1);
}
}
}

-
边界条件:到最后一个数的时候,程序执行到底。==>f(1)
-
前阶段:当参数不到底时,不停的调用自身,直到底为止。==>直到f(1)为止
-
返回阶段:n*(n-1)。从最大的数开始,一直递归到最后,得到结果后,一直不断返回。
PS:小计算通过递归,过于大的计算,容易GG。递归过多,容易影响机器性能

浙公网安备 33010602011771号