PHPのループ中断breakとスキップcontinueの使い方を徹底解説
生徒
「PHPで繰り返し処理をしている途中で、処理を止めたり、一部だけ飛ばしたりできますか?」
先生
「PHPでは、breakを使うとループを途中で中断でき、continueを使うと今の回だけスキップできます。」
生徒
「ループって、同じ処理を何回も繰り返すことですよね?」
先生
「その通りです。for文やwhile文の中で、必要に応じて止めたり飛ばしたりする方法を覚えると、PHPの制御構造がとても使いやすくなります。」
1. PHPのループ処理とは?
PHPのループ処理とは、同じ処理を何回も繰り返すための仕組みです。たとえば、商品一覧を順番に表示したり、配列に入っている名前を一人ずつ表示したり、数字を一から十まで表示したりするときに使います。プログラミング初心者の方は、ループを流れ作業のようなものだと考えるとわかりやすいです。同じ作業を毎回手で書くのではなく、PHPにまとめて繰り返してもらうイメージです。
PHPの代表的なループには、for文、while文、foreach文があります。どれも繰り返し処理を行うために使いますが、処理の途中で止めたい場合や、特定のデータだけ飛ばしたい場合があります。そのようなときに使うのが、breakとcontinueです。
PHPの制御構造を学ぶうえで、ループ中断とループスキップはとても重要です。実際のWebサイト制作や業務システムでは、条件に合うデータが見つかったら処理を止めたり、表示したくないデータだけ飛ばしたりする場面がよくあります。
2. breakとは?ループを途中で中断する命令
breakは、ループ処理を途中で完全に止めるための命令です。日本語で考えると、中断する、抜ける、やめるという意味に近いです。たとえば、十個の商品を順番に確認しているときに、目的の商品が見つかったら、それ以上探す必要はありません。その場合にbreakを使うと、無駄な繰り返しを止めることができます。
プログラミング未経験の方に例えるなら、引き出しの中から鍵を探していて、目的の鍵が見つかった瞬間に探すのをやめるようなものです。見つかった後もすべての引き出しを確認する必要はありません。PHPのbreakも同じように、必要な条件を満たした時点でループから抜けるために使います。
for ($i = 1; $i <= 5; $i++) {
if ($i == 3) {
break;
}
echo $i . "回目です\n";
}
1回目です
2回目です
この例では、変数$iが三になったときにbreakが実行されます。そのため、三回目以降の処理は行われません。PHPのfor文で条件に合ったら処理を止めたい場合に、breakはとても便利です。
3. continueとは?今の回だけスキップする命令
continueは、ループ全体を止めるのではなく、今の一回だけ処理を飛ばすための命令です。日本語で考えると、次に進む、今回だけ飛ばすという意味に近いです。たとえば、一覧の中に表示したくないデータが一つだけある場合、そのデータだけ飛ばして、残りのデータは通常通り処理したいことがあります。
身近な例でいうと、出席番号順に名前を呼んでいるとき、欠席の人だけ飛ばして次の人を呼ぶようなものです。出席確認そのものをやめるわけではありません。PHPのcontinueも、ループを続けながら特定の処理だけスキップするときに使います。
for ($i = 1; $i <= 5; $i++) {
if ($i == 3) {
continue;
}
echo $i . "回目です\n";
}
1回目です
2回目です
4回目です
5回目です
この例では、変数$iが三のときだけcontinueが実行されます。そのため三回目の表示だけが飛ばされ、四回目と五回目は通常通り表示されます。PHPのループスキップを理解するうえで、breakとの違いを意識することが大切です。
4. breakとcontinueの違いをわかりやすく比較
breakとcontinueは、どちらもPHPのループ処理の中で使いますが、役割はまったく違います。breakはループを完全に中断します。一方、continueは今の回だけスキップして、次の繰り返しへ進みます。この違いを理解していないと、思った通りに処理が動かない原因になります。
| 命令 | 意味 | 処理の流れ |
|---|---|---|
break |
ループを途中で中断する | 繰り返し処理そのものを終了する |
continue |
今の回だけスキップする | 次の繰り返しへ進む |
初心者の方は、breakは終了、continueは一回休みと覚えると理解しやすいです。PHPの繰り返し処理では、処理を終わらせたいのか、それとも一部だけ飛ばして続けたいのかを考えて使い分けます。
5. foreach文でcontinueを使って特定の値を飛ばす
PHPでは、配列の中身を順番に取り出すときにforeach文をよく使います。配列とは、複数のデータをまとめて入れておける箱のようなものです。たとえば、ユーザー名の一覧、商品名の一覧、点数の一覧などを扱うときに便利です。
次の例では、配列の中にある名前を順番に表示します。ただし、特定の名前だけは表示せずにスキップします。
$names = ["田中", "佐藤", "鈴木", "高橋"];
foreach ($names as $name) {
if ($name == "鈴木") {
continue;
}
echo $name . "さん\n";
}
田中さん
佐藤さん
高橋さん
このプログラムでは、名前が鈴木のときだけcontinueで処理を飛ばしています。そのため、鈴木さんは表示されず、他の名前だけが表示されます。PHPのforeach文とcontinueを組み合わせると、条件に合わないデータを除外しながら一覧表示を作ることができます。
実際のPHP開発では、退会済みユーザーを一覧に出さない、在庫切れの商品を表示しない、空のデータを飛ばすなどの場面で使われます。PHPの配列処理を学ぶときにも、continueはとても役立つ制御構造です。
6. while文でbreakを使って条件に合ったら止める
while文は、条件が成り立つ間だけ繰り返すループです。for文は回数が決まっているときに使いやすく、while文は条件を見ながら繰り返したいときに使いやすいです。PHP初心者の方は、while文を条件が続く間は作業を続ける仕組みと考えるとよいでしょう。
次の例では、数字を一つずつ増やしながら表示し、四になったらbreakでループを中断します。
$count = 1;
while ($count <= 10) {
if ($count == 4) {
break;
}
echo $count . "番目です\n";
$count++;
}
1番目です
2番目です
3番目です
この例では、$countが四になった時点でbreakが実行されるため、四番目以降は表示されません。PHPのwhile文では、条件の作り方を間違えると繰り返しが終わらないことがあります。そのような無限ループを防ぐためにも、条件に応じてbreakを使う考え方は重要です。
7. breakとcontinueを使うときの注意点
PHPでbreakやcontinueを使うと、ループ処理を細かく制御できるようになります。しかし、便利だからといって使いすぎると、プログラムの流れがわかりにくくなることがあります。初心者の方は、まず条件と処理の流れを紙に書くような気持ちで整理すると理解しやすくなります。
breakを使うと、その時点でループが終わります。そのため、後ろに書いた処理は実行されません。continueを使うと、その回の残りの処理は飛ばされます。そのため、continueより下に大切な処理を書いている場合、その処理が実行されないことがあります。
for ($i = 1; $i <= 5; $i++) {
if ($i == 2) {
continue;
}
echo "処理中です\n";
echo $i . "を表示しました\n";
}
処理中です
1を表示しました
処理中です
3を表示しました
処理中です
4を表示しました
処理中です
5を表示しました
この例では、二のときにcontinueが実行されるため、その下にある二つのechoは実行されません。PHPのループ制御では、breakやcontinueを書く位置がとても大切です。どこで中断するのか、どこから次の繰り返しへ進むのかを意識して書きましょう。
8. 実際のPHP開発で使う場面
PHPのbreakとcontinueは、練習用の数字だけでなく、実際のWebアプリケーションでもよく使われます。たとえば、検索処理で目的のデータが見つかったらbreakで処理を止めることがあります。これにより、不要な処理を減らして、読みやすいプログラムにできます。
一方、continueは、条件に合わないデータを飛ばしたいときに便利です。商品一覧で在庫がない商品を表示しない、会員一覧で退会済みのユーザーを飛ばす、点数一覧で未入力のデータを除外するなど、PHPの配列処理や一覧表示でよく使われます。
$items = [
["name" => "ノート", "stock" => 3],
["name" => "えんぴつ", "stock" => 0],
["name" => "消しゴム", "stock" => 5]
];
foreach ($items as $item) {
if ($item["stock"] == 0) {
continue;
}
echo $item["name"] . "は在庫があります\n";
}
ノートは在庫があります
消しゴムは在庫があります
このように、PHPのcontinueを使うと、在庫がない商品だけをスキップして、在庫がある商品だけを表示できます。Webサイトの商品一覧、管理画面、予約システム、会員管理システムなどでも考え方は同じです。PHPの制御構造を理解すると、ただ表示するだけでなく、条件に合わせて必要なデータだけを扱えるようになります。
9. 初心者が覚えやすい考え方
PHPのループ中断とスキップを覚えるときは、breakはここで終わり、continueは今回は飛ばす、と考えるとわかりやすいです。どちらもループの中で使う命令ですが、結果は大きく違います。処理全体を終了したいならbreak、今の一回だけ除外したいならcontinueです。
プログラミングを始めたばかりの方は、最初から複雑な条件を書こうとせず、まずは数字を表示する簡単なループで練習するのがおすすめです。次に配列を使い、特定の名前だけ飛ばす、特定の値が見つかったら止める、という順番で試すと理解しやすくなります。
PHPのbreakとcontinueは、for文、while文、foreach文などのループ処理をより実用的にするための大切な命令です。条件分岐のif文と組み合わせることで、処理を中断するか、スキップするかを判断できます。PHP初心者が制御構造を学ぶときには、ループ、条件分岐、中断、スキップの関係をセットで理解すると、プログラムの流れが自然に読めるようになります。