对于循环空白条件

时间:2014-04-12 10:15:29

标签: java

for循环中的条件留空,代码编译并运行。

 for(int i=0; ; i++)
    System.out.print(i);  //this code does not execute
 //code after this does not execute

但是,我不明白如何以及为什么这是可能的。

4 个答案:

答案 0 :(得分:3)

只需更改以下行,但不是问题。

System.out.print(i);  //this code does not seems execute by checking o/p on console but in reals it works as well.

System.out.println(i);  //this code works and you will be able to see o/p on console.

OR

System.out.print(i+" "); // this will show you some momentary action on Eclipse console.

在我看来,这是一些Eclipse IDE控制台打印问题。如您在问题中提到的第一个版本,我看不到任何输出。由于print()在同一行继续打印,因此我们无法看到它。

但是,如果在调试模式下运行代码并在上面的行上放置一个断点。断点将会命中,您也可以看到正在打印的输出。

但是对于第二个版本,我可以看到它从0,1 ...

开始打印所有数字

这是@PakkuDon分享的similar discussion

答案 1 :(得分:2)

如果没有打印,则表示您根本没有达到此循环。
如果你到达它,它应该打印从0开始的所有数字 这是一个无限循环打印0,1,2,...
你的问题在别处(可能在for循环之前)。

答案 2 :(得分:2)

在netbeans中测试后,它是这样的:

应用程序运行时: 没有输出

停止申请时: 所有数字都在控制台中输出。

所以它确实有效,看看其他答案的参考资料,知道它为何起作用。

答案 3 :(得分:2)

For循环结构有三个InitializationConditionIncrement/Decrements这些不是必填字段。 Java将始终执行代码并且不会显示错误,因为我们没有违反任何语法规则。

在这里for(i=0;;i++) System.out.println(i)仍将被执行并导致无限循环,因为条件总是被视为可选部分,所以休息其他两个。

因此,我们无法在System.out.println(i)语句之后访问代码,因为我们陷入了无限循环。