for循环中的条件留空,代码编译并运行。
for(int i=0; ; i++)
System.out.print(i); //this code does not execute
//code after this does not execute
但是,我不明白如何以及为什么这是可能的。
答案 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循环结构有三个Initialization
,Condition
和Increment/Decrements
这些不是必填字段。 Java将始终执行代码并且不会显示错误,因为我们没有违反任何语法规则。
在这里for(i=0;;i++) System.out.println(i)
仍将被执行并导致无限循环,因为条件总是被视为可选部分,所以休息其他两个。
因此,我们无法在System.out.println(i)
语句之后访问代码,因为我们陷入了无限循环。