2012-11-13 50 views
4

可能重複:
Infinite loop application - for(;;)什麼是「for(;;)」循環用於?

我是一個Java開發人員,我看到這其中的一個類:

for(;;){ 
something goes here 
} 

是什麼意思循環? 我們什麼時候需要使用它?

感謝

+10

它是一個無限循環。 http://www.cs.umd.edu/~clin/MoreJava/ControlFlow/infinite.html – WilliamShatner

+2

@WilliamShatner如果你有答案,爲什麼不把它作爲回答(而不是評論)? – delnan

+1

@delnan我沒有意識到我發表了評論,當我這樣做時,有幾個人已經向OP提供了相同的答案。很高興我能夠提供一個OP來源閱讀有關它雖然:) – WilliamShatner

回答

11

這是一個無限循環,這等同可能是

while(true)這是絕對比使用無限多了很多關於循環。

但是他們在這種情況下意味着同樣的事情。

5

這是一個無限循環。類似於while(true) { ... }do { ... } while(true);。您可能會使用此的一個原因是,如果在something goes here部分中,您有一個break;複雜的條件。

對於簡單的中斷條件,將它們放在循環語句中會更容易。

2

這是一樣

while(true) 

但是它不太使用和一般應避免。

+0

爲什麼要避免它? –

+0

好吧,雖然你可以爭論這是一個偏好問題(它是),但它是一個沒有道理的成語。首選的習慣用法是讓讀者明白它在做什麼。很像使用一系列if/elseif而不是開關。如果你願意的話,它會使代碼更難閱讀,「不太標準」,即使它也是「正確的」並且按預期工作。 – Acapulco

1

這是一個無限循環。這個想法是休息條件是循環

int i=0; 
for(;;) 
{ 
    i++; 
    if (i>10) break; 
} 
2

這是一個無限循環,相當於內部更具可讀性while(true)

這樣的循環並不經常使用,它通常表示只要應用程序運行就應該繼續運行的操作。 E.G:在一段時間

  • 讀取無限輸入與停頓

  • 的唯一方法

    • 服務器線程接受連接

    • 清理過程睡眠逸出這樣一個循環是:

      • break

      • 拋出異常

      • 中斷一個線程(相當於拋出InterruptedException在一個循環內)

    相關問題