0

他の人の仕事のいくつかのソースを通過します。そして、本体のないwhileループの例をたくさん見つけました

while(true);

それは何をしますか?それをたくさん遅らせることの横にあるすべてのポイントが何であるかよくわかりませんか?Javaスニペットコード

do
{
    if (!iterator.hasNext())
    {
        break;
    }

    Object obj = iterator.next();

    if (obj instanceof something)
    {

    }
}
while (true);
4

4 に答える 4

6

これで do..while ループが終了します。これらのループは、ループ条件が最初にチェックされる前に 1 回実行されます。最後の while(true) は、ループが無限に実行されるか、ループ内に break ステートメントが呼び出されるまで実行されることを意味します。

于 2012-09-22T19:08:02.050 に答える
1

貼り付けたものは、実際にはdo-whileループであり、少なくとも 1 回実行されます(条件が にwhile評価された場合でもfalse)。ここでのループの本体は、{}後に表示されるものですdo

コードのこの部分により、ループが非無限ループになります。

if (!iterator.hasNext())
{
    break;
}
于 2012-09-22T19:19:41.713 に答える
0

基本的には do..while ループです。

do {
  // ....
} while(true);

これは の実装ですinfinite loop

何かをしたいときに使いますrun forever once it is started

于 2012-09-22T19:15:21.047 に答える
0

これは、以下と同等であることが証明されています。

while (iterator.hasNext()) {
 Object obj = iterator.next();

 ...
}

なぜ誰かがそれを他の方法でコーディングするのか、私には本当に理解できません。これはおそらく、Java に直接変換された逆コンパイルされた C コードです。それが、誰もがそのように書く理由だと私が考えることができる唯一の理由です。

于 2012-09-22T21:07:18.590 に答える