1

重複の可能性:
Java で for (;;) とはどういう意味ですか?

私はいくつかの Java API ドキュメントを読んでいますが、非常に奇妙なはつらつとした外観のこのループに遭遇したので、私はここに来て、それが何であるかを尋ねました。お早めに見つけていただければ幸いです。今後ともよろしくお願いいたします。

  public int read() throws IOException {
       synchronized (lock) {
          ensureOpen();
           **for (;;)** {
               if (nextChar >= nChars) {
                  fill();
                  if (nextChar >= nChars)
                       return -1;
               }
              if (skipLF) {
                     skipLF = false;
                  if (cb[nextChar] == '\n') {
                     nextChar++;
                      continue;
                   }
               }
             return cb[nextChar++];
          }
       }
    }
4

4 に答える 4

4

為に(;;)

それが無限ループです。

たとえば、次のようなものと同等です

while(真)

当然のことながら、このようなループを終了するには、分岐ステートメントが使用されます。

編集: 明らかに、「無限」という言葉の使用は悪い選択でした。それでも、すべての意図と目的のために、for(;;)ループは通常のループと同じ条件付きメカニズムを使用して終了しませんfor。これが質問のポイントだったと思います。この時点では、コメントは髪を分割しているだけです。

于 2012-05-09T22:13:14.660 に答える
2
for(;;)

これは無限ループであり、変数の初期化、チェックする条件、増分ステップはありません...条件内で「return」文を実行する場合にのみループを終了します。

一般的な for ループ:

for(int i = 0 ; i < max ; i++)

希望が役立ちます。

于 2012-05-09T22:18:15.063 に答える
1

これは、サイクルの終了条件が通常の形式で表現されていないことを意味します。

サイクルを終了する唯一の方法は、2 つのreturnステートメントです。

于 2012-05-09T22:17:56.767 に答える
0

@Tom が述べたように、これは無限ループです。プログラムでこれを使用すると、何かを永久に実行したい場合に使用できます。

于 2012-05-09T22:18:01.150 に答える