小鱼先生2333
2016-05-18 16:51
递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序; 递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反; 这段话什么意思?
我是这样想的:
这句话的时间节点为:递归调用
调用前,就是顺序运行,你肯定明白。
调用后,语句需要后一项的输出才能执行,所以是倒叙。
function num(n,m){
console.log(n);
if(n<m){
num(n+1,m);
console.log(n);
}
}
num(2,5) //2345432
// 1.首先执行num(2,5),就是
// console.log(2); -> num(3,5); -> console.log(2);
//执行num(3,5); 就是是相当于 console.log(3); -> num(4,5); -> console.log(3);
//下面以此类推
// console.log(2); -> console.log(3); -> num(4,5); -> console.log(3); -> console.log(2);
// 然后就是
// console.log(2); -> console.log(3); -> console.log(4); -> num(5,5); -> console.log(4); -> console.log(3); -> console.log(2);
// 最后就是
// console.log(2); -> console.log(3); -> console.log(4); -> console.log(5); -> console.log(4); -> console.log(3); -> console.log(2);
C语言入门
926020 学习 · 20793 问题
相似问题