javascript - 在 Javascript 中,While 循环在控制台上运行时从 1 计数到 5 时重复最后一个数字

标签 javascript for-loop while-loop

<分区>

在控制台上运行以下代码时:

var counter=0; while(counter<5){ console.log(counter); counter++; }

控制台 o\p: 0 1个 2个 3个 4个 4

而下面的代码工作正常,没有重复最后一个值:

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

控制台 o\p: 0 1个 2个 3个 4

现在,如果我在上面提到的 while 循环之后放置上面的 for 循环,输出就完全没问题了:

var counter=0; while(counter<5){ console.log(counter); counter++; } for(var i=0; i<5; i++){ console.log(i); }

控制台 o\p: 0 1个 2个 3个 4个 0 1个 2个 3个 4

然而,如果我在 for 循环之后放置 while 循环,则会重复找到的最后一个数字。

for(var i=0; i<5; i++){ console.log(i); } var counter=0;while(counter<5){ console.log(counter); counter++; }

控制台 o\p: 0 1个 2个 3个 4个 0 1个 2个 3个 4个 4

要求所有人提供 while 循环这一意外行为的原因。 谢谢。

最佳答案

在控制台执行操作时,总是输出最后执行行的返回值。

这意味着简单地写

var counter = 0; ++counter;

1 记录到控制台。

同样的事情发生在你的循环中,最后一个 counter++ 的返回值作为最后一个执行表达式的值输出到控制台。

关于javascript - 在 Javascript 中,While 循环在控制台上运行时从 1 计数到 5 时重复最后一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31434942/

相关文章:

javascript - 如何将 Javascript 字符串转换为八位字节/字符数组?

javascript - 使用 Angular 获取所有选定的复选框及其关联属性

javascript - 使用前验证变量

javascript - Angular 插件 ZeroClipboard 不工作

javascript - 如何在 for 循环中将 textContent 修复为未定义?

Python 在继续之前等待操作完成

python - 如何将这个循环推到 numpy 中?

c++ - 使用 std::ofstream C++ 的无限 while 循环

具有返回类型的 Java 方法在没有返回语句的情况下编译

java循环,如果否则