2009-06-30 23 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中,但我们已经有了 - 每个东西都非常棒。

相关问题