请问阶乘中设置for循环变量的问题

function jiec (n)
{
    var result = 1;
    for(var i = 0 ; i < n ; n--)
    {
        result *= n   
    }
    return result;
}

console.log(jiec(5));

小白有个不懂得细节。 在这里for循环中,var i =0 或者 var i =1 都是可行的 。
但是var i=0的话 那么传的参数n-- 那么最后不会被减成负数或者0吗?

阅读 2k
3 个回答

你看 编辑器 提示的两个版本,你好像用混了

for (var i = Things.length - 1; i >= 0; i--) {
    Things[i]
}

for (var i = 0; i < Things.length; i++) {
    Things[i]
}

i=1 的时候 n-- 最后得 1 条件不成立 不进入循环
jie(4) //4*3*2
i=0 的时候 n-- 最后得 0 条件不成立 不进入循环
jie(4) //4*3*2*1
i=0 时候 result 多了一步 resule *=1 不影响结果

var retsult = 1;
for(var i = n; i>0;i--){

retsult*=n;

}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题