n=5 method(n - 1)=method(4)
进行下一递归
n=4 method(n - 1)=method(3)
进行下一递归
n=3 method(n - 1)=method(2)
进行下一递归
n=2 method(n - 1)=method(1)
进行下一递归
n=1 method(n - 1)=method(0)
结束,跳出递归
120
进行下一递归
n=4 method(n - 1)=method(3)
进行下一递归
n=3 method(n - 1)=method(2)
进行下一递归
n=2 method(n - 1)=method(1)
进行下一递归
n=1 method(n - 1)=method(0)
结束,跳出递归
120
打个比方n=5进入方法体,通过判断执行return n*method(n-1); 但是这时候又出现了method()方法,所以继续调用,且参数为n-1即4n=4,进入方法体,通过判断执行return n*method(n-1); 同上继续调用,参数为3..........
直到n=1 的时候,进入方法,return 1。而这时候的整个递归过程拆开来的表达式为:return 5*(return 4*(return 3*(return 2*(return 1))))故结果为5的阶乘