Java_基础—递归
package com.soar.chario;
public class Demo8_Digui {
/*
* 递归:方法自己调用自己
* * 5的阶乘 5!= 5*4*3*2*1
*
* 5!=5*fun(4)
* 4!=fun(4)=4*fun(3)
* 3!=fun(3)=3*fun(2)
* 2!=fun(2)=2*fun(1)
* 1!=fun(1)=1
* 递归的弊端:不能调用次数过多,容易导致栈内存溢出
* 递归的好处:不用知道循环次数
*
* 构造方法是否可以递归调用?
* 构造方法不能使用递归调用
*
* 递归调用是否必须有返回值?
* 不一定(可以有,也可以没有)
*/
public static void main(String[] args) {
//forFunction();
System.out.println(fun(5));
}
private static void forFunction() {
int result = 1;
for (int i = 1; i <= 5; i++) {
result = result * i;
}
System.out.println(result);
}
public static int fun(int num){
if(num == 1){
return 1;
}else{
return num*fun(num-1);
}
}
}