取决于我将语句放置在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。这种语法有何不同?
计算机不知道循环。他们也不会注意到内存中的值何时更改。
他们只能做一些非常基本的数学运算,存储和执行条件跳转。您的while循环在内部基本上看起来像这样(伪代码):
if n smaller 3 jump to end. // conditional jump
increase n.
log n.
jump to first line.
因此,n的变化实际上并不重要。循环继续进行,直到再次达到条件为止,如果条件为假,则它将在那里退出(不过您可以break;
[jump]跳出循环)。