私は構文はこのようなものか、これを模倣する方法があった場合だけ不思議Javaの各ループはしばらくあるのですか?
while(Integer item : group<Integer>; item > 5)
{
//do something
}
の線に沿って何かであることを想像そのような事があった場合は?
私は構文はこのようなものか、これを模倣する方法があった場合だけ不思議Javaの各ループはしばらくあるのですか?
while(Integer item : group<Integer>; item > 5)
{
//do something
}
の線に沿って何かであることを想像そのような事があった場合は?
いいえ、最も近い次のようになります。
もちろんfor (Integer item : group<Integer>)
{
if (item <= 5)
{
break;
}
//do something
}
Javaは、これまで簡潔クロージャを得れば、(この場合はgroup
)を反復可能をラップする.NETのEnumerable.TakeWhile
メソッドのようなものを書くことが合理的であると状態が保たれなくなると早く終了させる。
これは今でも実行可能ですが、それを行うコードは醜いでしょう。参考のため、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
}
セマンティクスではなく構文です。
私はそれについて疑問に思ってくれてありがとう、その構文は間違いなく吸う –
+1 suckiness – voyager
Javaの場合while
は状態に基づいています。お探しのものはforeach
です。
Javaではwhile-eachのようなものはありませんが、私たちはそのために非常に優れています。
Hehe。もう一度私を叩いてください。 btw ...私はあなたのコードスニペットの最初の行に 'while'の代わりに 'for'を使うことを意図したと思います。 –
Hm。私は構文の間それを認識しません。 – ojrac
Doh!はい、確かに。 c'n'pエラー –