PHP PHP入門講座 プログラミング

【PHPプログラミング入門講座】continue

PHPプログラミングのキービジュアル

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

では、図を使って説明します。

continueを使ったサンプルプログラム

図内の番号に対して説明します。

(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, PHP入門講座, プログラミング
-, , ,

Copyright© ハッピー・プログラミング・ライフ , 2020 All Rights Reserved.