・continueってどういった役割があるの?
・breakとの違いは?
PHPの繰り返し処理でcontinueという構文がありますが、詳しい役割や使い方を知らない人も多いでしょう。
そこでこの記事では、PHPの繰り返し処理にcontinueを使う方法とbreakとの違いについて解説していきます。
この記事を読めば、continueとはどういった役割があるのか、繰り返し処理でcontinueを使う方法がわかるでしょう。
PHPの繰り返し処理でcontinueの使い方がわからない人は、ぜひ最後までご覧ください。
目次
continueとは?
continueとは、forやwhile、foreachなどの繰り返し処理において、処理をスキップすることができる構文です。
例えば、1〜6までの番号を繰り返し処理する場合に、「もし4が来たら」という処理に対してcontinueを指定すると、その4はスキップされます。
1 |
continue; |
書き方は簡単で、処理をスキップしたい場所に「continue」と記述するだけです。
詳しい使い方については、これから解説していきます。
PHPの繰り返し処理にcontinueを使う方法
では、実際にPHPの繰り返し処理にcontinueを使う方法について解説していきます。
PHPで繰り返し処理を行うことができるのは、forやwhile、foreachなどの構文です。
continueは、これら3つの構文で使うことができるので、それぞれの使い方を見ていきましょう。
for文で使う方法
まずは、for文で使う方法です。
for文の基本的な書き方は、次の通りですね。
1 2 3 4 5 |
<?php for ($i = 0; $i < 10; $i++) { echo $i."<br>"; } ?> |
for文は「処理の初期値、処理の条件式、処理の増減式」を指定することで、繰り返し処理を行うことができます。
では、このfor文でcontinueを使って、処理を途中でスキップしてみましょう。
1 2 3 4 5 6 7 8 |
<?php for ($i = 0; $i < 10; $i++) { if ($i === 4) { continue; } echo $i."<br>"; } ?> |
今回は、0〜9までの数字を繰り返し処理するfor文を書きます。
for文の中にif文を使って、「もし、繰り返し処理の値が4の場合」という条件分岐を作ります。
そして、そのif文に「continue」と指定することで、「繰り返し処理の値が4の場合、処理をスキップする」ということになります。
if文の後にechoで繰り返し処理を表示してみましょう。
結果を表示すると、次のようになります。
0から順に数字が並んでいますが、4だけが表示されていませんね。
これは、continueによって、4の処理をスキップされたということになります。
while文で使う方法
続いて、while文でcontinueを使う方法について解説していきます。
1 2 3 4 5 6 7 8 |
<?php $i = 0; while ($i < 10) { echo $i."<br>"; $i++; } ?> |
while文は上記のように、処理の初期値を設定してから、while文で条件式や増減式を指定しますが、繰り返し処理に関してはfor文と同じ動きになります。
では、このwhile文にcontinueを使って繰り返し処理をスキップしてみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $i = 0; while ($i < 10) { if ($i === 4) { $i++; continue; } echo $i."<br>"; $i++; } ?> |
まず、初期値を0に設定し、while文で10未満(9まで)の条件式を指定します。
そして、if文を使って「もし値が4の場合」という条件分岐を作り、「$i++」と「continue」を指定しましょう。
if文の条件に当てはまらなかった場合として、「echo」と「$i++」で繰り返し処理を表示します。
結果を表示すると、次のようになるでしょう。
0から数字が順番に並んでいますが、4の部分だけが表示されていませんね。
これは、for文のときと同じく、continueによって処理がスキップされたということになります。
foreach文で使う方法
今度は、foreach文でcontinueを使う方法です。
foreach文は、配列の繰り返し処理を行うことができる構文で、基本的な書き方は以下のようになります。
1 2 3 4 5 6 7 |
<?php $array = [1, 2, 3, 4, 5, 6]; foreach ($array as $value) { echo $value."<br>"; } ?> |
「配列 as 値(要素)」とすることで、配列の中の要素を繰り返し処理することができます。
では、このforeach文でcontinueを使って、繰り返し処理をスキップさせてみましょう。
1 2 3 4 5 6 7 8 9 10 |
<?php $array = [1, 2, 3, 4, 5, 6]; foreach ($array as $value) { if ($value === 4) { continue; } echo $value."<br>"; } ?> |
配列「$array」に「1, 2, 3, 4, 5, 6」を入れます。
foreach文は「$array as $value」とし、配列の中身を繰り返し処理します。
そして、if文を使って「もし繰り返し処理の値が4の場合」という条件分岐を作り、そのif文の中に「continue」と指定して処理をスキップするように設定します。
if文の条件に当てはまらなかった場合として、echoで処理を表示します。
結果を表示すると、次のようになるでしょう。
配列の中の1〜6が順番に表示されていますが、4だけが表示されていませんね。
これは、for文やwhile文と同じように、continueによって処理をスキップさせたためです。
このように、continueはforやwhile、foreachなどで処理をスキップさせるために使うことができます。
なので、使い方を覚えておくといいでしょう。
breakとの違い
繰り返し処理では、continueの他にbreakという構文を使うことができます。
breakとは、繰り返し処理を途中で中止することができる構文です。
continueは処理を途中でスキップするだけですが、breakは処理を途中で中止するため、それ以上は繰り返し処理が行われなくなります。
では、実際の使い方をコードで見ていきましょう。
1 2 3 4 5 6 7 8 |
<?php for ($i = 0; $i < 10; $i++) { if ($i === 4) { break; } echo $i."<br>"; } ?> |
今回は、for文を使った繰り返し処理で見ていきます。
先ほどと同じように、0〜9までの数字を繰り返し処理します。
そして、if文を使って「もし処理の値が4の場合」という条件分岐を作り、breakと指定しましょう。
繰り返し処理をechoで表示すると、次のようになります。
0〜9までの数字が順番に表示されるはずが、3までしか表示されていませんね。
これは、値が4になった時にbreakを指定したため、処理が途中で中止されたのです。
このように、breakを使えば、繰り返し処理を途中で中止することができます。
continueと合わせて使い方を覚えておくといいでしょう。
continueの階層指定
実は、continueは階層指定をすることができます。
continueの後に階層数を指定することで、複数のネストされた繰り返し処理においてスキップする階層を指定することができるのです。
1 2 3 4 5 6 7 8 9 10 |
<?php for ($i = 0; $i < 3; $i++) { for ($a = 0; $a < 6; $a++) { if ($a === 3) { continue 2; } echo $i.$a."<br>"; } } ?> |
例えば、上記のように、for文の中にfor文が書かれている多重の繰り返し処理があったとします。
内側のfor文に「もし値が3である場合」という条件分岐を行い、「continue 2」と指定すると、continueの対象は外側までのfor文となります。
つまり、内側の処理が途中でスキップされたら、外側の残りの処理もスキップされます。
echoで結果を表示すると、次のようになるでしょう。
内側で指定した条件分岐によって、3のときにスキップされます。
その際に、continueの対象は外側のfor文になるため、毎回外側のfor文の処理がスキップされます。
なので、結果が「00, 01, 02, 10, 11・・・」というようになるのです。
continueは、このように階層指定をすることもできるので、使い方を覚えておくといいでしょう。
まとめ
今回は、PHPの繰り返し処理でcontinueを使う方法について解説しました。
continueは、forやwhile、foreachなどの繰り返し処理において、処理をスキップすることができる構文です。
繰り返し処理を途中で中止することができるbreakと、合わせて使い方を覚えておくといいでしょう。
この記事がPHPの学習に役立つと幸いです。