しばらくのようなものは、Javaの各ループはありますか?

StackOverflow https://stackoverflow.com/questions/1066393

  •  21-08-2019
  •  | 
  •  

質問

このようなことがあった場合、私はの線に沿って何かする構文を想像

while(Integer item : group<Integer>; item > 5)
{
    //do something
}

このようなものか、これを模倣する方法があった場合だけ不思議?

役に立ちましたか?

解決

いいえ、最も近いは以下のようになります:

for (Integer item : group<Integer>)
{
    if (item <= 5)
    {
        break;
    }
    //do something
}
Javaは、これまで簡潔クロージャを取得する場合

もちろん、.NETの<のhref = "http://msdn.microsoft.com/en-us/library/system.linq.enumerable.takewhileような何かを書くために合理的です.aspxの」REL = 『nofollowをnoreferrer』>反復可能(この場合は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
}

これは、ないセマンティクスを吸う構文です。

のJava whileでは、条件に基づいています。あなたが探していることはforeach構築物である。

はそのような事は同様ながら、各Javaではありませんが、我々はとても素晴らしいである - 各用に持っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top