51

誰かが例を挙げて、ループbreak 2またはcontinue 2PHPで何を意味するのか説明してもらえますか?数字が続く、breakまたは続くとはどういう意味ですか?continue

4

4 に答える 4

89
$array = array(1,2,3);
foreach ($array as $item){
  if ($item == 2) {
    break;
  }
  echo $item;
}

エコーが「2」を出力できるようになる前に、ループが永久に中断されたため、「1」を出力します。

$array = array(1,2,3);
foreach ($array as $item){
  if ($item == 2) {
    continue;
  }
  echo $item;
}

132回目の反復が渡されたため、出力

$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
  foreach ($letters as $char){
    if ($char == "C") {
      break 2; // if this was break, o/p will be AB1AB2AB3
    }
    echo $char;
  }
  echo $num;
}

ABのために出力しますbreak 2。これは、両方のステートメントがかなり早い段階で壊れたことを意味します。これがちょうどbreakの場合、出力はになりますAB1AB2AB3

$numbers = array(1,2,3);
$letters = array("A","B","C");
foreach ($numbers as $num){
  foreach ($letters as $char){
    if ($char == "C") {
      continue 2;
    }
    echo $char;
  }
  echo $num;
}

ABABABのために出力されますcontinue 2:外側のループは毎回渡されます。

つまり、continue現在の反復の実行を停止しますbreakが、ステートメント全体を完全に停止しながら、別の反復の実行を許可します。
したがってcontinue、ループにのみ適用できることをbreak確認できますが、などの他のステートメントで使用できますswitch

数値は、影響を受けるネストされたステートメントの数を表します。
ネストされたループが2breakつある場合、内側のループは内側のループを壊します(ただし、内側のループは外側のループの次の反復で再び起動されるため、ほとんど意味がありません)。break 2内側のループでは両方が壊れます。

于 2011-03-02T12:58:15.150 に答える
34

数字は「飛び出すスコープの数」を示しているだけです

<?php
for($i = 0; $i < 10; ++$i) {
    for($j = 0; $j < 10; ++$j) {
        break 2;
    }
}

$iと$jは0になります

マニュアルを引用するには:

continueは、オプションの数値引数を受け入れます。これは、最後までスキップする必要がある囲みループのレベル数を示します。

同じことが休憩にも当てはまります。

于 2011-03-02T12:43:11.503 に答える
9

breakは、ネストされた囲み構造をいくつ分割するかを指定するオプションの数値引数を受け入れます。

<?php
$arr = array('one', 'two', 'three', 'four', 'stop', 'five');
while (list(, $val) = each($arr)) {
    if ($val == 'stop') {
        break;    /* You could also write 'break 1;' here. */
    }
    echo "$val<br />\n";
}

/* Using the optional argument. */

$i = 0;
while (++$i) {
    switch ($i) {
    case 5:
        echo "At 5<br />\n";
        break 1;  /* Exit only the switch. */
    case 10:
        echo "At 10; quitting<br />\n";
        break 2;  /* Exit the switch and the while. */
    default:
        break;
    }
}
?>

休憩のその他の例

continueは、オプションの数値引数を受け入れます。これは、最後までスキップする必要がある囲みループのレベル数を示します。デフォルト値は1であるため、現在のループの最後までスキップします。

<?php
while (list($key, $value) = each($arr)) {
    if (!($key % 2)) { // skip odd members
        continue;
    }
    do_something_odd($value);
}

$i = 0;
while ($i++ < 5) {
    echo "Outer<br />\n";
    while (1) {
        echo "Middle<br />\n";
        while (1) {
            echo "Inner<br />\n";
            continue 3;
        }
        echo "This never gets output.<br />\n";
    }
    echo "Neither does this.<br />\n";
}
?>

続行のその他の例

于 2012-10-09T09:57:48.450 に答える
3

ブレーク:最も内側のループをブレークします(ループを終了します)

ブレーク2:2つのネストレベルループをブレークします(2つのネストされたループから終了します)

続行:残りのループコードを実行せずに使用される場所から次の反復のためにループを強制します

続行2:残りのループコードを実行せずに使用される場所から次の2回の反復でループを強制します

$array値が5になったら、ループを終了します

 break
    $array(4,5,8);
    for ($i=0 ;$i < 10 $i ++)
    {
        if ($array[$i]==5)
        {
          break;
        }
    }

ブレーク(n)

$ arrayで値5が見つかったら、両方のループを終了します。

for ($i=0 ;$i < 10 $i ++)
  {
    for($j=0; $j <10; $j++)
     {
            if ($array[$i][$j]==5)
            {
              break 2;
            }
     }
 }

継続する

値が5の場合にメッセージを出力します。

for($i=0; $i<10; $i++)
{
   if ($array[$i] != 5)
   { 
     continue;// will reach at the first line from here which is for($i=0;.....
   }
   echo 'This is five';
}

}

于 2011-03-02T12:48:09.317 に答える