JAVA中return的应用程序 没看懂结果是如何得出的
求n的阶乘
例程 3 3 Factorial.java
public class Factorial
{
static int f(int n)
{
if((n==0)||(n==1)) //看懂5==0||5==1得到值为false执行else
return 1;
else
{
System.out.println(n+"!="+n+"*"+(n-1)+"!"); //看懂打印n!=n*(n-1)
return n*f(n-1); //return返回值 第一次是5*4=20 可之后怎么算的那?
}
}
public static void main(String args[])
{
int i=5;
System.out.println(i+"!="+f(i));
}
}
运行的结果是
5!=5*4
4!=4*3
3!=3*2
2!=2*1
5!=120
我明白5的阶乘是5*4*3*2*1=120 程序第一步我明白 n=5时 return返回5*4=20 可之后就不明白从哪里开始了,难道直接进行n==4 4==0||4==1为false 执行else ,这时的return 难道执行的是20*3吗?可n没有进行n--的循环啊?没看懂,希望明白的大师给与指点,谢谢了!!