【问题标题】:Does `for (;;)` (two semicolons) in JavaScript mean infinity? [duplicate]JavaScript 中的`for (;;)`(两个分号)是否表示无穷大? [复制]
【发布时间】:2022-11-23 18:50:30
【问题描述】:

我正在测试一些代码,我发现了这个:-

for (;;) {
  console.log("test");
}

迭代一直持续下去

我想知道这个;; 是什么意思?它的用例是什么?

附言:-不要运行它,因为它会冻结无限迭代。

【问题讨论】:

  • 当前目标是 C,而这是一个 javascript 问题。这个目标stackoverflow.com/questions/4740979/empty-for-loop-for 似乎更合适。金牌徽章持有者可以编辑目标列表(并在之后将此评论标记为不需要)。
  • @cigien 更新。我搜索了一个 js 副本,但找不到。 C 问题的答案也适用于 JavaScript。因此,这并非完全无关。
  • @adiga 嗯,说得好。那个相关的问题很奇怪。它被标记为 C,但代码似乎是 Java。我会将其编辑为与语言无关,以便更广泛地使用它。

标签: javascript for-loop


【解决方案1】:

for(;;) 永远循环的原因是因为for 包含三个部分,每个部分都是可选的。第一部分初始化循环;第二个决定是否继续循环,第三个在每次迭代结束时做一些事情。它是完整的形式,你通常会看到这样的东西:

for(i = 0; i < 10; i++)

如果缺少第一个(初始化)或最后一个(迭代结束)部分,则什么都不做。如果缺少中间(测试)部分,那么它就好像 true 就在那里一样。所以for(;;)for(;true;)相同,与while(true)相同。

【讨论】:

    猜你喜欢
    • 2017-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 2011-08-06
    • 2012-12-17
    • 1970-01-01
    相关资源
    最近更新 更多