Tips

2012.12.10

PHP その他の制御文 【初級編 第34回】

continue文について

回層上の forまで抜けるよ
break文の場合はその時点でループを終了するという意味になります。
これに対し、continue文を使用するとループを抜けずに、以降の処理をスキップして次のループに進むということができます。

以下は break文を使用した場合です。

<?php
for($i = 1; $i = 5){
echo “echo2 値: $i
“;
break;
}
}
?>

値が 5に達すると、ループを終了しているので
結果は以下のように 値が 6以上は出力されません。
[styled_images width=”300″ height=”250″] [image title=”ブラウザ確認画像”]https://techpjin.sakura.ne.jp/techpjin_new/wp-content/uploads/2012/12/5_break.jpg[/image] [/styled_images] [clearboth]

これを continue文で記述するとループは抜けずに、continue以降に書いた処理はスキップされますが、
ループ処理自体は継続していることが分かります。

<?php
  for($i = 1; $i <= 10; $i++){
    echo "値: $i<br>";
    if($i >= 5){
      continue;
    }
    echo "continue後の出力<br>";
  }
?>

continueも breakと同じように引数に数値を使用することで何階層の for文までスキップするかを指定することができます。
下記では for文をスキップするのを 1階層だけにしているので、処理の内容は変わりません。

<?php
  for($i = 1; $i <= 6; $i++){
    for($s = 1; $s <= 3; $s++){
      echo "i == $i, s == $s<br>";
      continue;
    }
    echo "continue後の処理<br>";
  }
?>

結果は以下のようになります。

以下ではスキップを 2階層上の forまでスキップしています。
continue 2 にすると、continue後の処理 と記述している箇所が行われずに、2回層上の forまでスキップします。

<?php
  for($i = 1; $i <= 6; $i++){
    for($s = 1; $s <= 3; $s++){
      echo "i == $i, s == $s<br>";
      continue 2;
    }
    echo "continue後の処理<br>";
  }
?>

結果は以下のようになります。

新連載はじまりました!新PHP基礎 連載リンク

PHP基礎 連載

Recent News

Recent Tips

Tag Search