i++循环没问题,i+2无限循环崩溃

i++ loops without any problem, i+2 loops infinitely and crashes

我想创建一个简单的循环函数,每次循环时加 2。但是,即使我告诉我的 for 循环在数字达到或小于 100 时停止,它也会超过 100 并无限循环。

i++ 工作正常:

function addTwo() {
  for (i = 0; i <= 100; i++) {
    console.log(i);
  }
}

addTwo();

当我将其更改为 i+2 时它崩溃了:

function addTwo() {
  for (i = 0; i <= 100; i + 2) {
    console.log(i);
  }
}

addTwo();

我希望控制台记录: 0 2个 4个 6个 8个 ... 100.

但它会无限循环并崩溃。

i++ 递增 i。但是,i+2 不会更新 i 的值。您应该将其更改为 i += 2

function addTwo() {
  for (i = 0; i <= 100; i += 2) {
    console.log(i);
  }
}

addTwo();

i+2 在你的情况下什么都不做。 JS 对其进行评估,然后对计算值不执行任何操作,这意味着 i 永远不会增加。

++ 是一个特殊的运算符,它将它前面的变量递增 1。

要使循环工作,您必须将计算值 i+2 分配给变量 i

for (i=0; i<=100; i = i+2) {
    console.log(i);
}

for (i=0; i<=100; i += 2) {
    console.log(i);
}

for的第三个参数是final-expression:

An expression to be evaluated at the end of each loop iteration. This occurs before the next evaluation of condition. Generally used to update or increment the counter variable.

在您的情况下,您没有为 i 分配任何值。你应该用这样的东西替换它:

function addTwo() {
  for (i=0; i<=100; i+=2) {
    console.log(i);
  }
}

addTwo();

i++i += 1的简写,叫做Increment Operator,但是i+2甚至i+1不会增加[=15的值=].您需要通过为 i 分配一个新值来增加它。 i = i + 2i += 2

数字是 javascript 中的基本类型之一,这意味着除非使用赋值运算符 =

,否则无法更改它

注意:您没有将 letvari 一起使用,这将使 i 成为全局变量。

function addTwo() {
  for (let i = 0; i <= 100; i+=2) {
    console.log(i);
  }
}

addTwo();

for (i = 0; i <= 20; i++) {
    console.log(i);        
     i++;
}

你可以将 i 增加两倍或者

for (i=0; i<=100; i+=2) {
    console.log(i);
}

你可以使用 i+=2 它会将 i 的值增加 2 倍并设置 i 的新值。