Home > PHP > PHP - continue -

PHP - continue -

  • 2012-04-19 (Thu) 08:26
  • PHP
4月も半分を過ぎて、全国春便りが飛び交う毎日です。
日中を過すには、軽装の服で良くなり、動きやすく感じます。

この前、DVDで「わらの犬」を見ました。これは、昔にダスティ・ホフマン主演で上映されたものでリメイク版です。
今回の映画では、そんなに有名どころではない俳優さんでしたが、アメリカの片田舎ではこのようなこともあるんだ~という雰囲気を味わえました。

逆に怖い(ホラーでない)と感じた場面も多かったですが、日本の雰囲気とはかけ離れていたので、客観的に見れるかと思います。必見ではないですが、ちょっとした暇な時間を過ごすには、適当な映画かもしれません。

今日は、continue文を紹介します。
第14回 continue
ループ構造(繰り返し処理)において、continue文は現在の繰り返しループの残りの処理をスキップし、条件を評価した後に次の繰り返しの最初から実行を続ける時に使用します。

簡単な説明として次のようなコードがあったとします。
<?php
 $num = array(1,2,3,4,5);
 foreach($num as $value){
  if($value==4){
   continue;
  }

 echo $value."<br>";
 }
?>

結果は、「1、2、3、5」の数字が出力されます。
まず、配列として変数numに1から5の数字を格納します。変数numをforeachで繰り返し処理し、echoで格納されている数字を出力していますが、その中にif文が記述されています。
if文は値が「4」であれば、continueしなさい。つまり、スキップしなさいという命令となり、「4」という数字は表示されないという意味になります。

このcontinueは繰り返し処理を終了しなさいということではなく、処理をスキップして、次の繰り返し処理を続けなさいということになります。
繰り返し処理を完全に終了したい時は、break文を利用します。

また、ネスト(入れ子)構造のループの時には、オプションとして引数を渡すことができます。引数は、continue文から見たループのレベルで、省略された場合は「1」と見なされ、現在の構造から抜けます。
では、以下のコードをみてください。
<?php
 $i = 0;
 while($i++ < 10){
  while($i<=3){
   continue 2;
  }

 echo $i."<br>";
 }
?>

20120419-p01.jpg
このコードは、1から10までカウントアップしていく繰り返し処理です。
While構文を使って、変数iが10までの間、数字を出力させていますが、その中にもう一つWhileを使って条件を入れています。この条件は変数が3以下である間は、continueをしなさい、つまりスキップしなさいとなります。
ただ、繰り返し処理はネスト構造になっているので、continueと書いてしまうと処理が中のwhileをスキップするだけなので、延々にwhile($i<=3)の条件を行うことになります。
そこで、continue文から見た2番目の構造(最初のwhile文)をスキップしなさいという事になるので、continue 2と記述しなければなりません。
ループが3重構造であれば、continue 3となり、引数の数字を変えていくことに注目します。

continueとbreakはセットとして覚えると、実際の処理の流れをどうしたいのかが分かってくるかと思います。
Comment Form
★下記に2つの英単語をスペースで区切って入力してください

Home > PHP > PHP - continue -

Search
Feeds

Page Top