2

作業中のコードを調べていたところ、これまでに遭遇したことのないものが見つかりました。

for (; ;)
{
   // Some code here
   break;
}

私たちはこれを常に含む関数を呼び出しますが、私はつい最近、それがどのように機能するかを確認するためにそこにアクセスしました。なぜこれが機能し、どこかに文書化されているのですか?

この場合、whileループの方が適切だったようです...

4

3 に答える 3

7

基本的にはと同じwhile(true)です。初期化は行われず、反復間で何も変更されず、falseにするものがない場合、条件はtrueと見なされます。

于 2012-09-18T18:08:16.913 に答える
3

それは無限ループです。

通常、次のようなものがあります。

for ($i=0; $i<10; $i=$i+1)

ただし、どの部分も省略できます。

これらはすべて有効です。

for ($i=0; ; $i=$i+1)
for (; $i<10; $i=$i+1)
for (; $i<10;)

ただし、2番目の部分を省略した場合、ループを終了するための条件はありません。これは、ループを何回実行するかわからない場合に使用できます。その場合、命令を使用しbreakてループを終了できます

for (;;)
  {
  // some code
  if (some condition)
      break;
  }

ページを配置しないとbreak、ページがスタックして無期限に実行されることに注意してください

于 2012-09-18T18:10:53.830 に答える
1

最初の空白のステートメントが最初に実行されます。

2番目の空白の式(ループを終了するかどうかを決定する)は、暗黙的にTRUEと評価されます。

http://php.net/manual/en/control-structures.for.php

3番目の空白のステートメントは、各反復の後に実行されます。

したがって、ループから抜け出す条件は、ループ自体にある必要があります。

于 2012-09-18T18:10:04.167 に答える