以前就是很不理解递归,方法自己调用自己让自己逻辑混乱。用一个小实例来理解吧:
public class Recursion {
public static void main(String[] args) {
int result = sum(5);
System.out.println(result);
}
public static int sum(int n){
if(n == 1){
return 1;
}else{
return n + sum(n-1);
}
}
}
/*
当n=5时,5 + sum(4);
当n=4时,即sum(4) == 4 + sum(3);
当n=3时, 即sum(3) == 3 + sum(2);
当n=2时, 即sum(2) == 2 + sum(1);
当n=1时, 即sum(1) == 1 这个返回条件,跳出递归的重要语句
最后把sum(n)套进去就是: 5 + 4 + 3 + 2 + 1
*/
上面的例子就是计算1到n的和,在原来要用到循环语句才可以做到,现在用了递归竟然可以代替循环语句,真的很神奇。
上面详细说明了程序运行的过程。