
continueとは
今回はPHPプログラムの「continue」(コンティニューと読みます) について説明します。
「continue」は、現在処理中のループ処理の残りの処理をスキップして、次のループ処理に移動する命令です。
foreach文、for文、while文、do-while文などのブロック内で使用します。
早速、サンプルプログラムを書きます。
<サンプルプログラム>
<?php $list = [2, 0, 3, 9, 0, 6, 1]; foreach($list as $num) { if($num === 0) { continue; } echo $num . '<br>'; }
このプログラムは、配列$listの中で0以外の要素のみを出力するPHPプログラムです。
実行結果は次のようになります。
<実行結果>
2
3
9
6
1
では、図を使って説明します。

図内の番号に対して説明します。
(1) 配列を変数$listに代入します。変数$listのデータ型は「配列型(Array)」になります。
(2) foreach文の( )内で、配列$listの要素が前から順番に変数$numに代入され、foreachループの処理が実行されます。
(3) 変数$numの値が0かどうかの判定をしています。
変数$numが0と等しい場合は、ifブロック内の処理に移動します。
変数$numが0と等しくない場合は、ifブロックをスキップして、次の処理に進みます。
(4) continueにより、foreachループの残りの処理を実行せず、次のループ処理に進みます。
つまり、(3)のif条件と(4)の組み合わせにより、変数$numが0に等しい場合は、残りの処理が実行されません。
(5) 変数$numの値を出力します。
(3), (4)により、変数$numが0に等しい場合は、この処理に到達しません。
よって、変数$numの値が0以外の値のみ、この処理が実行されます。
(6) foreachブロックの最後に到達すると、ブロックの最初に戻ります。
戻ったら、(2)により、配列$listの次の要素を変数$numに代入しますが、もし、次に代入できる要素がなくなった場合は、(7)→(8)と進み、foreach文の処理が終了します。
以上が、continueを使ったループ処理の例です。
このサンプルプログラムのように、continueは、ループ処理内で、if文などの条件分岐処理と一緒に使う場合が多いです。
continueをif文を使って書き換える
continueを使ったループ処理は、ほとんどの場合、continueを使わずにif文だけを使って書くことができます。
先ほどのサンプルプログラムをcontinueを使わずに書くと次のようになります。
<?php $list = [2, 0, 3, 9, 0, 6, 1]; foreach($list as $num) { if($num !== 0) { echo $num . '<br>'; } }
先ほどのサンプルプログラムでは、$numの値が0の場合にcontinueにより次のループ処理に進むため、continueより後の「echo $num . '<br>';」が実行されませんでした。
continueを使わず、if文だけを使って、$numの値が0以外の場合に「echo $num . '<br>';」を実行するように書き換えると、同じ処理を作ることができます。
おわりに
今回は、continueの説明をしました。
ほとんどの場合、continueは使わず、if文を使って書けばプログラムを書くことができます。
よって、プログラムの規模が大きくなり、continueを使って書いた方がプログラムが読みやすいと思った時に、使うのが良いと思います。
PHPプログラミング入門講座 〜 全記事一覧 〜
- PHPで開発された有名なWebサイト
- PHPでどのような機能が作れるか?
- サーバーについて理解しよう
- Webサーバーの処理について詳しく説明
- PHPプログラムの動作について説明
- パソコンにPHPの動作環境を構築しよう
- 一番簡単なPHPプログラムを書いてみよう
- ブラウザ画面にメッセージを表示しよう
- PHPタグの書き方と終了タグの省略
- 特殊なメッセージ(文字列)の書き方
- PHPプログラムで計算をしてみよう
- 変数
- 文字列の結合とヒアドキュメント
- ファイルの分割とファイルの読み込み
- コメント
- 定数
- 数値と文字列の性質・デバッグ
- 条件分岐 (if文)
- 論理型 (boolean型)
- 比較演算子
- 論理演算子
- 条件分岐 (switch文)
- 三項演算子
- 配列とforeach文
- 代入演算子 / 加算子 / 減算子
- ループ処理 (for文)
- ループ処理 (while文とdo-while文)
- break
- 現在のページ:continue
- 連想配列
- 連想配列のループ処理