2009-06-30 28 views

回答

7

沒有,最近的是:

for (Integer item : group<Integer>) 
{ 
    if (item <= 5) 
    { 
     break; 
    } 
    //do something 
} 

當然,如果Java的不斷變簡潔關閉,這將是合理的寫類似.NET的Enumerable.TakeWhile方法(在這種情況下,group)包裹的迭代和如果條件停止,則儘早完成。

當然,即使是現在也是可行的,但是執行代碼會很醜陋。作爲參考,C#是這樣的:

foreach (int item in group.TakeWhile(x => x > 5)) 
{ 
    // do something 
} 

也許Java將得到很好的封閉了一段時間......

3
for(Integer item : group<Integer>) 
{ 
    if (item <= 5) 
     break; 
    //do something 
} 

這是我能想到的。

+0

準確地說我的建議,除了你的情況看起來像是對我來說是錯誤的。 – 2009-06-30 22:25:35

+0

看起來不錯,不是嗎? – WowtaH 2009-06-30 22:28:45

+0

謝謝喬恩Skeet,修復它 – 2009-06-30 22:29:04

3

僅供參考,喬恩斯基特在Java的第二個答案將目前,對於一些interface Predicate,看起來如:

for (int item : takeWhile(group, new Predicate<Integer>() { 
    public boolean contains(Integer x) { 
     return x > 5; 
    } 
}) { 
    // do something 
} 

這是吸引語法,而不是語義。

0

在Java while是基於條件的。你正在尋找的是foreach構造。

0

沒有像Java那樣的東西 - 每個都在Java中,但我們已經有了 - 每個東西都非常棒。

相關問題