如果有这样的事情我会想象的语法是沿东西线

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中没有这样的事情,但是我们已经得到了 - 每一个它是如此之大。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top