誰かが例を挙げて、ループbreak 2
またはcontinue 2
PHPで何を意味するのか説明してもらえますか?数字が続く、break
または続くとはどういう意味ですか?continue
4 に答える
$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;
}
13
2回目の反復が渡されたため、出力
$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
内側のループでは両方が壊れます。
数字は「飛び出すスコープの数」を示しているだけです
<?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";
}
?>
ブレーク:最も内側のループをブレークします(ループを終了します)
ブレーク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';
}
}