计算范围内的整数

Counting Integers In Range

本文关键字:整数 范围内 计算      更新时间:2023-09-26

我正在尝试学习使用 for() 循环将整数(整数)从一个数字计数到另一个数字。这是我到目前为止的代码:

function processLoop(earlier,later) {
    earlier = 0;
    later = 0;
    count = 0;
    for (i = earlier; i <= later; i++) {
        count = count + i;
    };
    return count;
};

我应该有这两个参数,但它没有运行。我觉得我不够清楚,所以这是我的说明:

  1. 在 DESIGNER 中创建 javascript 06.js 带有通用函数:countIntegers()没有 HTML 页面。没有事件处理程序。
  2. 该函数接收两个参数。它们介于(..)之间。
  3. 对参数使用所需的任何名称,但可以使用如下描述性名称:第一个和最后一个
  4. 计算从第一个参数到第二个参数的所有整数。在这里你只是数数而不是计算总数。
  5. 您需要做的就是使用 for() 循环并返回计数。
  6. 返回整数的计数。使用 return,因为这是一个通用函数。

对此很陌生,不确定我应该在这里做什么。感谢您的任何帮助...

无论您

传入什么,您都将参数设置回零。

摆脱这些线条。

此外,使用 var 定义局部变量。

function processLoop(earlier,later) {
    var count = 0;
    for (var i = earlier; i <= later; i++) {
        count = count + 1;
    };
    return count;
};

如果earlierlater是默认值,可以在参数传递给函数时设置,则可以使用运算符OR ||。您还应该用 ++count 替换 count = count + i 以返回 earlierlater 之间的差值。还用<运算符代替<=运算符。

function processLoop(earlier, later) {
  var earlier = earlier || 0,
    later = later || 0,
    count = 0;
  // use `for` loop only if `earlier` does not equal `later`
  // and `later` is greater than `earlier`
  if (typeof earlier === "number" && typeof later === "number") {
    if (earlier !== later && later > earlier) {
      for (i = earlier; i < later; i++) {
        ++count;
      };
    } else {
      return new Error("earlier is not greater than later")
    }
    return count;
  } else {
    return new TypeError("earlier or later is not a number")
  }
};
console.log("no parameters passed to processLoop:", processLoop()
            , "'n10 passed as later:", processLoop(null, 10)
            , "'ndifference between 25 and 50:", processLoop(25, 50)
            , "'ndifference between 5 and 6:", processLoop(5, 6)
            , "'ndifference between 1 and 1:", processLoop(1, 1)
            , "'nearlier or later is not a number", processLoop("a", "b")
           );

您需要尝试解释问题的答案,因为它有点模糊。如果要计算实数 x 和 y 之间的整数,知道区间是开还是闭非常重要。

我一般不支持编写代码,但在这种情况下,这是最好的答案。以下代码对闭合实数区间 [较早,较晚] 中的整数进行计数:

function countIntegers(earlier, later)
{   earlier = Math.ceil(earlier);
    later = Math.floor( later);
    for( var i = earlier, count = 0; i <= later; ++i, ++count);
    return count;
}

您可能需要查找Math.ceilMath.floor的作用,并尝试开放区间和闭区间的组合,直到找到标记为正确的区间。享受 :-)

function processLoop(earlier,later) {
    var count = 0;
    for (i = earlier; i < later; i++) {
        count++;
    };
    document.getElementById("demo").innerHTML = count;
};
<html>
<body>
<button onclick="processLoop(1,3)">Click me</button>
<p id="demo"></p>
</body>
</html>

不要将参数的值设置为在函数内部zero。如果要在 earlierlater 之间计数,并且不需要包含earlier请使用 i < later 而不是 i <= later .

function processLoop(earlier,later) {
    count = 0;
    for (i = earlier; i < later; i++) {
        count++;
    };
    return count;
};