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);
}
}
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