【发布时间】:2012-07-10 12:37:30
【问题描述】:
我是 Javascript 的初学者。在自己尝试递归时,我使用 while 循环得到了一些奇怪的结果。并且使用 If 语句得到正确的结果。
这是代码和结果:
var test = function f(n){
while(n > 0){
document.write(n);
f(--n);
}
};
test(5);
结果:
5432112113211211432112113211211
使用 If 语句时
var test = function f(n){
if(n > 0){
document.write(n);
f(--n);
}
};
test(5);
结果是:
54321
在while 的情况下,我无法真正调试它。老实说,这让我在某些时候感到困惑。
【问题讨论】:
-
那你为什么不直接使用 if 语句呢?
-
我不明白你的问题是什么。第一个函数按预期工作,尽管我不得不承认它非常奇怪且不直观。
-
我只是在玩递归。首先我尝试了 While 然后如果,我想知道为什么 while 循环会给出这个结果?
-
@missingno 感谢您的链接。看到和我一样的问题,可惜这里无法调试代码
标签: javascript recursion while-loop