首页 > 解决方案 > 为什么这个for循环有溢出?

问题描述

这个循环一直循环到-30808,我不知道为什么!我希望它从 100 倒数到 1 或 0。

停止条件小于 num 或 1。

它出什么问题了?

谢谢

function first(num){
       for (let i = num - 1; i > num || 1; i--){
         let numFactorial = i;
          console.log(numFactorial);
       }
    };
  first(100);

标签: javascriptloopsfor-loopoverflow

解决方案


您将 i 初始化为 num -1 并开始递减,这意味着它永远不会大于 num。如果您尝试继续循环,只要 i 大于或等于 1,那么它应该如下所示。

for (let i = num - 1; i >= 1; i--)

同样,无论何时您尝试使用 || 比较具有两种不同条件的变量 或 && 请按以下方式进行操作,而不是i > num || 1在这里您将 i 与 num 进行比较,但不与 1 进行比较。

我 > 数 || 我 >= 1


推荐阅读