递归
递归就是方法自己调用自己,在编写的时候一定要有一个结束条件,否则将会造成StackOverflowError的错误。
看如下示例,计算1~n的和,按照以前所学习的知识,可能你会这样编写代码
public static void main(String[] args){ int n = 5; //调用该方法完成1-N的求和 int result = sum(n); System.out.println(result); } //该方法完成1-N的求和. public static int sum(int n){ int sum = 0; for(int i=0;i<=n;i++){ sum += i; } return sum; }
如果使用递归的话,可以这样写
public static void main(String[] args){ int n = 5; //调用该方法完成1-N的求和 int result = sum(n); System.out.println(result); } //该方法完成1-N的求和. //1+2+3+4+5+...N public static int sum(int n){ if(n==1){ return 1; }else{ return n + sum(n-1); } }
查看大图方法:图片上右键,点击在新标签页中打开图片
递归调用图解
使用递归计算n的阶乘
public static void main(String[] args){ long result = multiply(5); System.out.println(result); } public static long multiply(long n){ if(n==1){ return 1; }else{ return n * multiply(n-1); } }