可以写一个for循环来创建一个无限循环,还是仅仅在循环中这样做?

Gen*_*nki 7 java for-loop

for循环可以用Java编写来创建一个无限循环,还是仅在导致该问题的循环中?

Bal*_*a R 16

for(;;){}
Run Code Online (Sandbox Code Playgroud)

和...一样

while(true){}
Run Code Online (Sandbox Code Playgroud)

  • 这真是个顽固的选择(无论如何,实际上可能是不正确的-我是从高中那年级高出我两个年级的孩子那里得到的),但是我听说`for(;;)`被编译成非有条件的“ jmp”或其他条件,而对于“ while(true)”,它首先检查“ true”的计算结果是否为“ true”。 (2认同)

How*_*ard 9

您也可以使用for循环执行此操作.例如,以下内容与while(true):

for(;;) {
}
Run Code Online (Sandbox Code Playgroud)

  • 使用`for(;;);`用于更短的无限循环:-) (3认同)

tsm*_*tsm 8

除了范围问题和另外一件事,这个:

for(<init>; <test>; <step>) {
  <body>
}
Run Code Online (Sandbox Code Playgroud)

是相同的:

<init>
while(<test>) {
  <body>
  <step>
}
Run Code Online (Sandbox Code Playgroud)

正如其他人所提到的,就像你可以拥有一个while没有<init>表单或<step>表单的for循环一样,你可以拥有一个没有它们的循环:

while(<test>) {
  <body>
}
Run Code Online (Sandbox Code Playgroud)

是相同的

for(;<test>;) {
  <body>
} //Although this is terrible style
Run Code Online (Sandbox Code Playgroud)

最后,你可以有一个

for(;true;) {
  <body>
}
Run Code Online (Sandbox Code Playgroud)

现在,还记得当我说还有另外一件事吗?这就是for循环不需要测试 - 产生其他人发布的解决方案:

for(;;) {
  <body>
}
Run Code Online (Sandbox Code Playgroud)


Bec*_*uzz 6

你当然可以

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

只要你想要一个永远不会达到退出条件的方法,任何循环都可以变成无限.