为什么return的时候没有跳出函数?
来源:5-3 递归基础与递归的宏观语意
alexnest3882392
2018-05-12
package imooc; public class Sum { public static int sum(int[] array){ return sum(array,0); } public static int sum(int[] array , int l){ if(array.length == l){ return 0; } return array[l] + sum(array , l + 1); } public static void main(String[] args) { int[] array = {1,2,3,4,5,6,7,8}; System.out.println(sum(array)); } }
调试的时候当l=8,的确跑到了return 0,这时候不是应该跳出函数了吗?为什么还继续往下执行想不明白
写回答
1回答
-
return 0以后,跳到了递归的上一层调用,执行上层调用的return array[l] + sum(array , l + 1);
请继续看课程后续递归的微观运行机制讲解,回来再看这个问题,就明白了:)
012018-05-12
相似问题