1

可能重复:
Java 中的 for (;;) 是什么意思?

我正在阅读一些 Java API 文档,我遇到了这个看起来非常奇怪的循环,这让我很高兴来到这里询问它是关于什么的。会很高兴尽快找到它。感谢您即将做出的努力。

  public int read() throws IOException {
       synchronized (lock) {
          ensureOpen();
           **for (;;)** {
               if (nextChar >= nChars) {
                  fill();
                  if (nextChar >= nChars)
                       return -1;
               }
              if (skipLF) {
                     skipLF = false;
                  if (cb[nextChar] == '\n') {
                     nextChar++;
                      continue;
                   }
               }
             return cb[nextChar++];
          }
       }
    }
4

4 回答 4

4

为了(;;)

那是一个无限循环。

例如,它相当于类似

而(真)

自然,要退出这样的循环,需要使用分支语句。

编辑:显然使用“无限”这个词是一个糟糕的选择。尽管如此,出于所有意图和目的,for(;;)循环不会使用与典型for循环相同的条件机制来终止。我相信这是问题的重点。评论在这一点上只是分裂的头发。

于 2012-05-09T22:13:14.660 回答
2
for(;;)

这是一个无限循环,没有变量初始化,没有要检查的条件,没有增量步骤……只有在条件内执行“返回”语句时才退出循环。

常见的for循环:

for(int i = 0 ; i < max ; i++)

希望有所帮助。

于 2012-05-09T22:18:15.063 回答
1

这意味着循环终止的条件没有以通常的形式表示。

终止循环的唯一方法是两条return语句。

于 2012-05-09T22:17:56.767 回答
0

正如@Tom 所说,这是一个无限循环。如果您想永远执行某些操作,则可以在您的程序中使用它。

于 2012-05-09T22:18:01.150 回答