ループの意味break 2
またはcontinue 2
PHPで? break
またはcontinue
の後に数字が続くとはどういう意味ですか?
$array = array(1,2,3);
foreach ($array as $item){
if ($item == 2) {
break;
}
echo $item;
}
エコーが「2」を出力する前に、ループがbroken永久にあったため、「1」を出力します。
$array = array(1,2,3);
foreach ($array as $item){
if ($item == 2) {
continue;
}
echo $item;
}
2番目の反復がpassedであったため、13
を出力します
$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;
}
break 2
が原因でAB
を出力します。これは、両方のステートメントがかなり早く壊れたことを意味します。これが単に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;
}
continue 2
のため、ABABAB
を出力します。外側のループは毎回渡されます。
つまり、continue
は現在の反復実行を停止しますが、別の実行を許可しますが、break
はステートメント全体を完全に停止します。
したがって、continue
はループにのみ適用でき、break
はswitch
などの他のステートメントで使用できます。
数字は、影響を受けるnestedステートメントの数を表します。
2つのネストされたループがある場合、内部ループのbreak
は内部ループを中断します(ただし、外部ループの次の反復で内部ループが再び起動されるため、ほとんど意味がありません)。内側のループのbreak 2
は両方を壊します。
数字は「飛び出すスコープの数」とだけ言っています
<?php
for($i = 0; $i < 10; ++$i) {
for($j = 0; $j < 10; ++$j) {
break 2;
}
}
$ iと$ jは0になります
引用するには マニュアル:
continueは、オプションの数値引数を受け入れます。この引数は、最後までスキップするループのループレベル数を指示します。
休憩も同じです。
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";
}
?>
break:最も内側のループを中断します(ループから抜けます)
break 2:2つのネストレベルループを中断します(2つのネストループから終了します)
continue:ループの残りのコードを実行せずに、使用されている場所から次の反復のループを強制します
続行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';
}
}