遞歸函數(shù)的語句執(zhí)行順序特點(diǎn)
遞歸函數(shù)中,位于遞歸調(diào)用前的語句和各級被調(diào)用函數(shù)具有相同的執(zhí)行順序; 遞歸函數(shù)中,位于遞歸調(diào)用后的語句的執(zhí)行順序和各個(gè)被調(diào)用函數(shù)的順序相反; 這段話什么意思?
遞歸函數(shù)中,位于遞歸調(diào)用前的語句和各級被調(diào)用函數(shù)具有相同的執(zhí)行順序; 遞歸函數(shù)中,位于遞歸調(diào)用后的語句的執(zhí)行順序和各個(gè)被調(diào)用函數(shù)的順序相反; 這段話什么意思?
2016-05-18
舉報(bào)
2016-05-18
我是這樣想的:
這句話的時(shí)間節(jié)點(diǎn)為:遞歸調(diào)用
調(diào)用前,就是順序運(yùn)行,你肯定明白。
調(diào)用后,語句需要后一項(xiàng)的輸出才能執(zhí)行,所以是倒敘。
2017-07-20
function num(n,m){
??? console.log(n);
??? if(n<m){
??????? num(n+1,m);
??????? console.log(n);
??? }
}
num(2,5)? //2345432
?
// 1.首先執(zhí)行num(2,5),就是
// console.log(2); ->? num(3,5);? ->? console.log(2);
????
//執(zhí)行num(3,5);? 就是是相當(dāng)于?? 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);