2014-04-12 310 views
5

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

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

但是,我不知道如何和为什么可能。

+0

你还可以提供围绕for循环的上下文吗?如果在for循环之前添加'System.out.print(“test”)'一行,它是否会打印任何内容? –

+0

你确定部分被执行了吗?它应该永远运行... –

+0

可能重复[For循环在Java中没有参数](http:// stackoverflow。com/questions/6051869/for-loop-with-no-parameters-in-java) – thumbmunkeys

回答

2

如果它没有打印任何东西,那意味着你根本没有达到这个循环。
如果你到达它,它应该打印0的所有数字。
这是一个无限循环打印0,1,2,...
你的问题是其他地方(可能之前的for循环)。

+0

只是澄清:最初的问题是为什么这个循环不打印任何东西。 –

2

在NetBeans测试此之后,它是这样的:

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

当应用程序已停止: 所有的号码都在控制台输出。

所以它确实有效,查看其他答案的参考以了解它为什么有效。

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开始的所有数...

这是一个similar discussion由@PakkuDon

+2

这看起来很适合我。我认为[这个链接](http://stackoverflow.com/questions/10948983/system-out-print-doesnt-send-any-output-to-eclipse-console-why)可能值得添加到您的文章。 – PakkuDon

+0

@PakkuDon已添加到这个文件夹。谢谢!! – sakura

2

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

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

因此,我们无法在System.out.println(i)声明之后到达代码,因为我们陷入了无限循环。