如果有这样的事情,我会想象语法是
while(Integer item : group<Integer>; item > 5)
{
//do something
}
只是想知道是否有这样的东西或模仿这种方式?
答案 0 :(得分: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会在一段时间内得到很好的闭包......
答案 1 :(得分:3)
for(Integer item : group<Integer>)
{
if (item <= 5)
break;
//do something
}
这是我能想到的。
答案 2 :(得分:3)
作为参考,Jon Skeet目前在Java中的第二个答案,对于某些interface Predicate
,看起来像是:
for (int item : takeWhile(group, new Predicate<Integer>() {
public boolean contains(Integer x) {
return x > 5;
}
}) {
// do something
}
这种语法很糟糕,而不是语义。
答案 3 :(得分:0)
在Java中while
是基于条件的。您正在寻找的是foreach
构造。
答案 4 :(得分:0)
在Java中没有像while-each这样的东西,但是我们已经得到了 - 每个都非常棒。