function A (num){
if(num>0){
A(num-1);
document.writeln(num);//echo 1-2-3
}
}A(3);
一个简单的递归 看着有点迷糊。
疑问1.最后的1,2,3 是通过什么过程输出?
2.当函数执行到A(num-1)的时候 都要进行自调用(不停的调用) 如何能运行到document.writeln()?
3.菜鸟发问 误怒~
高手指教!~
if(num>0){
A(num-1);
document.writeln(num);//echo 1-2-3
}
}A(3);
一个简单的递归 看着有点迷糊。
疑问1.最后的1,2,3 是通过什么过程输出?
2.当函数执行到A(num-1)的时候 都要进行自调用(不停的调用) 如何能运行到document.writeln()?
3.菜鸟发问 误怒~
高手指教!~
解决方案 »
- js挑错。紧急错误,大神帮忙
- jsp + servlet,servlet中的request.set.attribute()问题
- 新手请教EXT界面的问题
- FireFox兼容问题。
- if (typeof(123)="number") {} ,这个判断语法哪错了,为何过不去呢?
- div 层被<object>控件挡住,如何解决?
- 明天要发给项目开发小组的js规范的个人建议,希望经验丰富者能够帮提出改善建议,非常感谢
- FCKEditor 在模态窗里的一个BUG
- 请问动态从数据库获得下拉列表内容,刷新提交以后,就不是刚才选的内容了(急等)
- 求hash算法的脚本语言实现
- extjs 如何遍历store的记录
- 子窗口表格数据传递给父窗口
因为是num-1,最终总会执行到 num=0,
此时就退栈, 并执行上一次没执行完成的函数,document.write
最终退回到第一次调用A()
回到 A(1) 的调用点继续执行,输出 1,执行完毕;
回到 A(2) 的调用点继续执行,输出 2,执行完毕;
回到 A(3) 的调用点继续执行,输出 3,执行完毕。
if (n==1)
{
return 5;//问第一个人只有5岁。
}else{
return findAge(n-1)+2;
//第n-1个人的年龄+2岁正好等于第n个人的年龄,就是一个反推算原理。
}
}
alert(findAge(10))//得出了第10个人的年龄。
function A (num){
if(num>0){
A(num-1);
document.writeln(num);//echo 1-2-3
}
}A(3);等同如下瀑布流:var num=3;
if(num>0){
{
var num1=num-1;
if(num1>0){
var num2=num1-1;
if(num2>0)
var num3=num2-1;
if(num3>0){
此时num3=0;这个分支不再执行;
}
document.writeln(num2);// }
document.writeln(num1);//
}
document.writeln(num);//
}