我想与您分享我的经历。我刚开始写一本书来学习Javascript。一开始有点令人沮丧,我得到了关于函数,闭包和递归的章节,看起来真的很复杂,但我会努力工作,因为我真的想学习。 (感谢阅读:))
现在我遇到了一个While循环的问题,我不明白为什么它在达到限制50时不会停止。这是代码:
function fib (one, two, end) {
while(two < end) {
if (one == 1) console.log(one);
two += one;
console.log(two);
one += two;
console.log(one);
}
}
fib(1, 1, 50);
结果如下,超出了限制50:
1
2
3
5
8
13
21
34
55
89
144
非常感谢你的帮助,对不起要问这么简单的事情! : - )
答案 0 :(得分:0)
两个是&lt; 50当循环的最后一次迭代开始时,但是在循环的最后一次迭代中增加了两个值。
答案 1 :(得分:0)
循环条件在每次执行主体之前发生。您正在修改身体内two
的值,当循环尝试再次运行时,它会看到您已超出界限并停止。这就是代码运行时会发生的情况。
初始值
one == 1
two == 1
两个不到50?是的,开始循环。
第一轮结果
two == 2
one == 3
两个不到50?是的,再去一次。
第二轮结果
two == 5
one == 8
两个不到50?是的,再去一次。
第3轮结果
two == 13
one == 21
两个不到50?是的,再去一次。
第4轮结果
two == 34
one == 55
两个不到50?是的,再去一次。
第5轮结果
two == 89
one == 144
两个不到50?不,两个现在大于或等于50.停止。