在JS中使用while循环时,为什么可以返回使条件为假的值

问题描述 投票:-4回答:1

取决于我将语句放置在while循环内的位置,它可能会或可能不会返回使条件为假的值

let n = 0;

while (n < 3) {
  n++;
  console.log(n); // Will log 1, 2, and 3
}

如果写的话

let n = 0;

while (n < 3) {
  console.log(n);
  n++; // Now the program logs 0, 1, and 2
}

两种情况都不应该只记录1和2(第二种是0),因为循环的终止点是3。这种语法有何不同?

javascript loops while-loop syntax
1个回答
1
投票

计算机不知道循环。他们也不会注意到内存中的值何时更改。

他们只能做一些非常基本的数学运算,存储和执行条件跳转。您的while循环在内部基本上看起来像这样(伪代码):

 if n smaller 3 jump to end. // conditional jump
 increase n.
 log n.
 jump to first line.

因此,n的变化实际上并不重要。循环继续进行,直到再次达到条件为止,如果条件为假,则它将在那里退出(不过您可以break; [jump]跳出循环)。

© www.soinside.com 2019 - 2024. All rights reserved.