题
如果有这样的事情我会想象的语法是沿东西线
while(Integer item : group<Integer>; item > 5)
{
//do something
}
只是想知道,如果有这样的事情还是有办法模仿呢?
解决方案
没有,最接近的是:
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将得到很好的封闭了一段时间...
其他提示
for(Integer item : group<Integer>)
{
if (item <= 5)
break;
//do something
}
这是我能想到的。
有关参考,乔恩斯基特在Java的第二个答案将目前,对于一些interface Predicate
,看起来是这样的:
for (int item : takeWhile(group, new Predicate<Integer>() {
public boolean contains(Integer x) {
return x > 5;
}
}) {
// do something
}
这是,吸语法,而不是语义。
在爪哇while
被基于状态的。你要找的是foreach
结构。
有像同时,每个Java中没有这样的事情,但是我们已经得到了 - 每一个它是如此之大。
不隶属于 StackOverflow