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

时间:2011-06-14 17:56:35

标签: java for-loop

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

12 个答案:

答案 0 :(得分:14)

for(;;){}

相同
while(true){}

答案 1 :(得分:9)

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

for(;;) {
}

答案 2 :(得分:8)

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

for(<init>; <test>; <step>) {
  <body>
}

与:

相同
<init>
while(<test>) {
  <body>
  <step>
}

正如其他人所提到的那样,您可以使用while表单而不是<init>表单或<step>表单,这样就可以for没有它们的循环:

while(<test>) {
  <body>
}

相同
for(;<test>;) {
  <body>
} //Although this is terrible style

最后,你可以有一个

for(;true;) {
  <body>
}

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

for(;;) {
  <body>
}

答案 3 :(得分:6)

当然可以

for(int i = 0; i == i; i++) {}

任何循环都可以变为无限,只要你想办法永远不会达到退出条件。

答案 4 :(得分:4)

不要忘记像

这样的错误
for (int i=0; i<30; i++)
{
    //code
   i--;
}

它并不是那么罕见。

答案 5 :(得分:3)

只是为了好玩(这个评论太长了):很多的人会非常惊讶地发现,对于很多非常实用的目的,以下几乎是 无限循环:

    for (long i = Long.MIN_VALUE; i < Long.MAX_VALUE; i++) {
        ...
    }

如果执行这个循环的线程每秒可以进行4亿次循环,并且可以在一个周期内完成增量和检查(对于单个线程非常强大),如果我的数学不完全关闭,我认为上面的代码需要大约150年才能执行:)

答案 6 :(得分:2)

我只是添加这个,因为没有人做过这个版本:

for(;;);

答案 7 :(得分:2)

我让服务器运行的方式,直到我关闭它是

for(int i = 0;i<-1;i++){//code here}

答案 8 :(得分:1)

forcourse for循环可能会导致无限循环。一个例子是:

for(int i = 0; i < 99; i /= 2){ ... }

因为i永远不会递增,所以它将永远保留在for循环的主体中,直到您退出程序。

答案 9 :(得分:0)

还有这一个,以完成主题:

do {something();} while(true);

答案 10 :(得分:0)

有许多方法可以使循环无限。这是我找到的解决方案:

int j = 1;
for (int i = 0; i < j; i++) {
  //insert code here
  j++;
}

这对我来说非常有用,因为它允许循环检查无限量的值以及无限循环。

答案 11 :(得分:-1)

您可以将代码的子部分声明为for循环的另一部分,例如 -

public class (classname) {
    for(int i = 1; i <= 4; i++) {
        for(int j = 1; i <= 4; j++) {
    system.out.println(i + "*" + j + "=" (i*j));
}

}

它几乎处于无限循环中;如果你将int更改为long,并添加更多变量,实际上可以使它持续25 x 10 ^ 12分钟