2014-04-12 201 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)聲明之後到達代碼,因爲我們陷入了無限循環。