gpt4 book ai didi

带有迭代器的 Javascript for 循环在 i 的中间和递减运算符的左侧?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:03:23 25 4
gpt4 key购买 nike

对于阶乘函数的非递归示例,我找到了这个示例并且在跟踪代码时遇到了一些困难:

function fact(x) {
if(x == 0) {
return 1;
}
if(x < 0 ) {
return undefined;
}
for(var i = x; --i; ) {
x *= i;
}
return x;
}

我不明白这个for循环的语法--为什么迭代语句在中间,那不应该是测试条件通常所在的地方吗?这是否意味着没有测试条件或没有迭代语句?您可以省略一个或两个?

其次,在 for 循环中使用 ++i--ii++ 有什么区别>我--?

如果我想找到 fact(5),在 for 循环的第一次迭代中,i 是 4 还是 5?

最佳答案

在js中,0表示false,其他值如1表示true。

why is the iteration statement in the middle

for(var i = x; --i; /* optional */ )
^^ its decrement as well as the condition
loop continues until, i is 0

事实上,你可以创建无限循环

for(;;);

I wanted to find fact(5), in the first iteration of the for loop, is i 4 or 5?

for(var i = x /* i=5 */; --i/* i=4 */; ) {
x *= i;/* i=4 */
}

关于带有迭代器的 Javascript for 循环在 i 的中间和递减运算符的左侧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30802196/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com