【问题标题】:Meaning of "for (;;)"? [duplicate]“for (;;)”是什么意思? [复制]
【发布时间】:2013-09-26 22:33:56
【问题描述】:

for (;;)是什么意思?

我在某个基类中找到了它,我在网上找不到解释。

还请说明何时以及如何使用此表达方式

【问题讨论】:

  • 如果这是我第一次看到这个表达,为什么要投反对票?输入谷歌术语“java for (;;)”,看看你是否能找到答案。
  • 不是downvoter,但我搜索了 java empty for 并找到了stackoverflow.com/q/7081339/1065197
  • 你可以编写这段代码,很容易看到发生了什么。
  • 诚实吗?我刚刚谷歌了它,这是第一个结果:docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html我想它需要downvote,因为它不仅在stackoverflow中重复了问题,而且在所有Java教程和书籍中都重复了!
  • 就是这么说,我知道c=c+1是什么,但是我没见过c++语言中的c++!

标签: java


【解决方案1】:

读作“永远”。条件的默认值为真。

你应该什么时候使用它?如果您不希望循环结束(这在服务器中很常见)或者当结束条件自然只在循环中间已知时,在这种情况下您可以使用break

for (;;) {
    String in = get_input();
    if (in.equals("end"))
        break;
    System.out.println("you entered " + in);
}

不过,这不是最好的例子。您可以在此处不使用无限循环。例如:

for (String in = get_input(); !in.equals("end"); in = get_input()) {
    System.out.println("you entered " + in);
}

【讨论】:

    【解决方案2】:

    在某些情况下,您想一次又一次地完成一项任务,有时甚至是永远。这种情况下,您使用无限循环。这可以通过多种方式完成。值得注意的是,
    使用while

    while(true)
    {
       // Task you want to repeat
    }
    

    使用for

    for(;;)
    {
          // Task you want to repeat
    }
    

    注意:在实现无限循环时,您可能必须非常小心,因为可能会再次出现相同的问题。捕获异常并重试一段时间是一个很好的做法,如果问题仍然存在,请退出循环。

    【讨论】:

      【解决方案3】:

      意思是无限循环。使用它不是一个好习惯。而是尝试while(true)

      【讨论】:

      • 我看不出while(true)for (;;) 之间的区别。
      • @Elazar:- 两者之间没有区别,但 while(true) 被认为是更好的方法。如果我错了,请纠正我:)
      • @Elazar:- 另外补充一点,两者的使用没有性能差异,但使用 while(true) 而不是 for(;;) 仍然被认为是一种好习惯对于无限循环:)
      • 我相信它们之间的选择只是与其余代码保持一致的问题,即使那样也不重要..
      • @Elazar:- 是的,我同意。 +1 :)
      【解决方案4】:

      这是一个无限循环。它没有初始条件,没有增量,也没有结束条件。

      和这个一样

      while(true) {
          //do stuff
      }
      

      当您需要不断重复某些事情时,您可以使用它,直到应用程序结束。但我会改用while 版本

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-02
        • 2012-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-18
        • 2019-09-12
        • 2015-01-22
        相关资源
        最近更新 更多