奇怪的"for(;;)"Java中的无限循环,这有用吗?

Raz*_*zib 10 java loops for-loop infinite-loop

虽然我有一些Java经验,但下面的代码对我来说有点奇怪:

public class ForLoopTest{
    public static void main(String[] args){
        for(;;){}
    } 
}
Run Code Online (Sandbox Code Playgroud)

虽然初始化测试增量部分是空的,但是这个代码编译得很好,这与通常的for循环不同:

for(int i=0; i<10; i++){}
Run Code Online (Sandbox Code Playgroud)

由于代码编译很好,它是有效的语法.

这种类型的for循环有没有实际用途,没有初始化测试增量部分?

Kay*_*man 12

它相当于while(true) {}.

没有真正的理由使用或不使用for循环(并且通常不会写入while(true)循环).


Jon*_*ica 9

这是编写无限循环的一种方法.它相当于:

while(true){ }


要么:

boolean loop = true;
while (loop) {
    //do nothing
}
Run Code Online (Sandbox Code Playgroud)

甚至:

int theAnswerToTheQuestionOfLifeTheUniverseAndEverything = 42;
while(theAnswerToTheQuestionOfLifeTheUniverseAndEverything == 42) { 
    //do nothing
} 
Run Code Online (Sandbox Code Playgroud)

​​​​​​​​​​​​​​​​​​​​​​​​


Rap*_*edo 7

这是一个无限循环.你可以使用它的方式(没有无限循环)就像这样(你可能永远不会用这种方式):

int i = 0;
for(;;) {
  if(i == 10) { 
      break;
  }
  i++;
}
Run Code Online (Sandbox Code Playgroud)