package fact;
public class Fact
{
public int fact(int n)
{
int i=1;
int result;
System.out.println("当前n="+n+"循环第"+i+"次");
if(n==1)
{
++i;
System.out.println("return 1");
return 1;
}
++i;
result= fact(n-1)*n;
System.out.println("\n------当前n="+n+"循环第"+i+"次"+"\n");
System.out.println("///////////当前结果"+result);
return result;
}
public static void main(String[] args)
{
Fact ft=new Fact();
System.out.println("10的阶乘是"+ft.fact(10));
}
}
输出:
当前n=10循环第1次
当前n=9循环第1次
当前n=8循环第1次
当前n=7循环第1次
当前n=6循环第1次
当前n=5循环第1次
当前n=4循环第1次
当前n=3循环第1次
当前n=2循环第1次
当前n=1循环第1次
return 1 -----在这里面就奇怪啦,为什么分两次循环,最后return啦已经为什么下面还有循环而且输出啦结果! 这时为什么 怎么也解释不通啊!
------当前n=2循环第2次
///////////当前结果2
------当前n=3循环第2次
///////////当前结果6
------当前n=4循环第2次
///////////当前结果24
------当前n=5循环第2次
///////////当前结果120
------当前n=6循环第2次
///////////当前结果720
------当前n=7循环第2次
///////////当前结果5040
------当前n=8循环第2次
///////////当前结果40320
------当前n=9循环第2次
///////////当前结果362880
------当前n=10循环第2次
///////////当前结果3628800
10的阶乘是3628800