public class Test{ public static int result(int parameter){ if(parameter<=1) return 1; int number = parameter*result(parameter-1); return number; } public static void main(String[]args{ int result = result(5); System.out.println(result); } }
运行结果是:120
public class Test{
public static int result(int parameter){
if(parameter<=1) return 1; // 判断parameter是否小于等于1,如果不成立则递归调用
int number = parameter*result(parameter-1); // 将parameter-1继续调用函数 反复如此,直至条件成立。
return number;
}
public static void main(String[]args{
int result = result(5);
System.out.println(result);
}
}
它的执行原理是如下这样的:
result(5) 初始时 ==》进入函数体判断parameter是否小于等于1,此时parameter等于5,条件不成立,执行parameter*result(parameter-1) 即5*result(5-1),程序反复执行。。。
5*result(5-1)
4*result(4-1)
3*result(3-1)
2*result(2-1) 到此 parameter等于1符合条件 函数返回1,层层返回。即:
result(1) =1
2*result(1)=2*1=2
3*result(2)=3*2=6
4*result(3)=4*6=24
5*result(4)=5*24=120