カテゴリ: PHP 更新日: 2026/06/20

PHP の break, continue の使い方を完全解説!初心者でもわかるループ制御

PHP の break, continue の使い方
PHP の break, continue の使い方

新人と先輩の会話形式で理解しよう

新人

「PHPのbreakcontinueって何ですか?」

先輩

「どちらもループ処理の中で使うものだよ。breakはループを途中で抜けるときに、continueは特定の条件をスキップして次のループに進むときに使うよ。」

新人

「ループの途中で止めたり、スキップしたりするってことですね。でも、それってどうやって使うんですか?」

先輩

「じゃあ、それぞれの使い方を詳しく説明していくね!」

1. breakとcontinueとは?(基本的な説明)

1. breakとcontinueとは?(基本的な説明)
1. breakとcontinueとは?(基本的な説明)

breakcontinueは、for文やwhile文などのループ処理の流れをコントロールするために使われるPHPのキーワードです。繰り返し処理の途中で、動きを変えたいときに活躍します。

breakは、条件を満たした時点でループそのものを終了させます。一方、continueは、現在の回の処理だけを飛ばして、次のループ処理へ進むという役割を持っています。

まずは、イメージをつかむために、とても簡単な例を見てみましょう。


<?php
for ($i = 1; $i <= 3; $i++) {
    if ($i == 2) {
        continue; // 2のときだけスキップ
    }
    echo $i . "<br>";
}
?>

解説:この例では、数字の「2」のときだけ処理がスキップされ、「1」と「3」だけが表示されます。もしここで continuebreak に変えると、2の時点でループ自体が終了します。

このように、breakcontinueは「処理を止める」のか、「処理を飛ばす」のかという違いがあり、ループ制御の基本としてとても重要です。

2. それぞれの役割と違い

2. それぞれの役割と違い
2. それぞれの役割と違い

ここでは、breakcontinueループの中でどのように動作するのかを整理していきましょう。どちらも似た場面で使われますが、処理の流れは大きく異なります。

  • break: その時点でループ処理を完全に終了し、ループの外へ処理が移る
  • continue: 現在のループ処理だけを途中で打ち切り、次の繰り返し処理へ進む

文章だけではイメージしにくいため、初心者の方でも理解しやすいサンプルコードで確認してみましょう。

breakの例(ループを途中で止める)


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        break; // 5になったらループを終了
    }
    echo $i . " ";
}
?>

このコードを実行すると、次のように表示されます。


1 2 3 4

解説:$iが5になった瞬間にbreakが実行され、ループ自体が終了します。そのため、5以降の処理は一切行われません。

continueの例(特定の回だけスキップする)


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        continue; // 5のときだけ処理をスキップ
    }
    echo $i . " ";
}
?>

このコードを実行すると、次のように表示されます。


1 2 3 4 6 7 8 9 10

解説:continueが実行されると、その回の処理だけが飛ばされ、ループ自体は最後まで続きます。このように、「止める」のがbreak、「飛ばす」のがcontinueという違いを覚えておくと混乱しにくくなります。

3. なぜbreakやcontinueを使うのか?

3. なぜbreakやcontinueを使うのか?
3. なぜbreakやcontinueを使うのか?

breakcontinueは、ループ処理を必要な分だけ実行するために使われます。何も考えずに最後まで繰り返すよりも、状況に応じて処理を止めたり飛ばしたりすることで、プログラムは読みやすく、動きも効率的になります。

特に初心者のうちは「とりあえず全部回す」書き方をしがちですが、条件に応じてループを制御できるようになると、無駄な処理を減らせます。

実用例: ユーザー入力の検証(break)

次の例では、配列の中に不正な値(負の数)が含まれていないかをチェックしています。不正な値が見つかった時点で、それ以上確認する必要がないため、breakで処理を終了します。


<?php
$numbers = [1, 2, 3, -1, 4, 5];

foreach ($numbers as $num) {
    if ($num < 0) {
        echo "負の数が含まれているため処理を中断します。";
        break;
    }
    echo "処理中: " . $num . "<br>";
}
?>

解説:マイナスの数が見つかった瞬間にループを終了しているため、不要なチェックを行わずに済みます。入力チェックやエラーチェックでは、よく使われる考え方です。

実用例: 偶数だけ処理する(continue)

次は、1から10までの数値の中から、偶数だけを処理したい場合の例です。奇数のときは処理を行う必要がないため、continueでスキップします。


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 != 0) {
        continue;
    }
    echo "偶数: " . $i . "<br>";
}
?>

解説:奇数のときは出力処理を飛ばし、次のループへ進んでいます。このようにcontinueを使うと、条件に合わないデータだけを簡単に除外できます。

このように、breakは「これ以上続ける必要がないとき」、continueは「今回は処理しなくていいとき」に使うと、無駄のないループ処理が書けるようになります。

4. break の使い方(具体的な例)

4. break の使い方(具体的な例)
4. break の使い方(具体的な例)

breakは、ループ処理を途中で完全に終了したいときに使うキーワードです。条件に合った時点で処理を止められるため、無駄な繰り返しを防ぐことができます。

特に「もうこれ以上チェックする必要がない」「目的の値が見つかった」という場面では、breakを使うことで処理の流れが分かりやすくなります。

例1: 指定した回数でループを終了

次の例では、1から10まで数字を表示する途中で、5になったらループを終了しています。初心者の方がbreakの動きを理解するのにちょうどよい例です。


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        break; // 5になったらループを終了
    }
    echo $i . " ";
}
?>

このコードの実行結果は以下のようになります。


1 2 3 4

解説:$iが5になった瞬間にbreakが実行され、ループ自体が終了します。そのため、5以降の数字は一切表示されません。

例2: while文での break の使用

breakfor文だけでなく、while文でも同じように使えます。次は、ランダムな数値を繰り返し生成し、特定の数値が出たら処理を止める例です。


<?php
while (true) {
    $num = rand(1, 10);
    echo "生成された数値: " . $num . "<br>";

    if ($num == 7) {
        echo "7が出たのでループを終了します。";
        break;
    }
}
?>

解説:この例では無限ループになりやすいwhile (true)を使っていますが、breakがあることで安全にループを終了できます。条件付きで処理を止めたい場合によく使われる書き方です。

5. continue の使い方(具体的な例)

5. continue の使い方(具体的な例)
5. continue の使い方(具体的な例)

continueは、ループの中で「今回は処理しなくてよい」と判断した場合に、その回の処理だけを飛ばして次の繰り返しへ進むためのキーワードです。

ループ自体は止めずに、条件に合わないデータだけを除外できるため、処理内容をシンプルに書けるのが特徴です。

例1: 特定の条件でスキップする

次の例では、1から10までの数字を順番に表示していますが、「5」のときだけ表示せずにスキップしています。数字を一つずつ確認しながら処理する、基本的なループの使い方です。


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        continue; // 5のときは表示せず次へ
    }
    echo $i . " ";
}
?>

このコードの実行結果は以下のようになります。


1 2 3 4 6 7 8 9 10

解説:「5」のときだけcontinueが実行され、echoの処理を行わずに次のループへ進んでいます。ループ自体は最後まで実行されている点がポイントです。

例2: 偶数だけを出力する

次は、数字の中から「必要なものだけを処理する」よくある例です。奇数は処理の対象外とし、偶数だけを出力しています。


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 != 0) {
        continue; // 奇数はスキップ
    }
    echo "偶数: " . $i . "<br>";
}
?>

このコードの実行結果は以下のようになります。


偶数: 2
偶数: 4
偶数: 6
偶数: 8
偶数: 10

解説:条件に合わない奇数をcontinueで飛ばすことで、偶数だけを自然に処理できます。if文の中に処理を書き続けるよりも、コードが読みやすくなるのがメリットです。

6. break と continue の違いをコードで比較

6. break と continue の違いをコードで比較
6. break と continue の違いをコードで比較

ここまででそれぞれの使い方を見てきましたが、breakcontinue動作の結果が大きく異なるため、並べて比較すると理解しやすくなります。

同じ条件でも「ループが止まるのか」「処理だけ飛ばすのか」という点に注目して確認してみましょう。

break の動作(ループそのものを終了)

次の例では、1から10まで繰り返す途中で、5になった時点でループを終了します。


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        break; // 5になったらループを終了
    }
    echo $i . " ";
}
?>

実行結果:


1 2 3 4

解説:breakが実行された瞬間にループ全体が終了するため、5以降の数字は処理されません。「ここで処理を終えたい」という明確な終了条件がある場合に向いています。

continue の動作(その回だけスキップ)

次は同じ条件ですが、5のときだけ処理を飛ばし、ループ自体は最後まで続ける例です。


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        continue; // 5のときはスキップ
    }
    echo $i . " ";
}
?>

実行結果:


1 2 3 4 6 7 8 9 10

解説:continueは現在の回の処理だけを飛ばし、次のループへ進みます。条件に合わないデータを除外しながら処理を続けたい場合に便利です。

適切な使い分けのポイント

  • break を使う場面: 目的のデータが見つかったら、それ以上処理する必要がないとき
  • continue を使う場面: 特定の条件だけを除外し、残りは通常どおり処理したいとき

この違いを意識して使い分けることで、ループ処理の意図が伝わりやすく、読みやすいコードになります。

7. どんな場面で break や continue を使うのか(実用的な例)

7. どんな場面で break や continue を使うのか(実用的な例)
7. どんな場面で break や continue を使うのか(実用的な例)

breakcontinueは、プログラムの実行効率を向上させるために重要な役割を果たします。ここでは、実際の開発現場でよく使われるケースを紹介します。

例1: データ検索で最初の一致を見つけたらループを終了(break)

例えば、顧客リストから特定の顧客IDを探し、最初に見つかったら処理を終了する場合、breakを使うと無駄なループを防ぐことができます。


<?php
$customers = ["田中", "鈴木", "佐藤", "山田", "高橋"];
$target = "佐藤";

foreach ($customers as $customer) {
    if ($customer == $target) {
        echo "見つかりました: " . $customer;
        break; // 一致したらループ終了
    }
}
?>

このコードを実行すると、"佐藤"が見つかった時点で処理が終了します。

例2: ユーザー入力で不正なデータをスキップする(continue)

ユーザーからの入力データを処理する際、不正なデータをスキップして処理を継続することが求められる場合があります。その場合、continueを使用します。


<?php
$inputs = ["100", "-50", "200", "abc", "300"];

foreach ($inputs as $input) {
    if (!is_numeric($input) || $input < 0) {
        continue; // 数値でない、または負の値ならスキップ
    }
    echo "処理中: " . $input . "<br>";
}
?>

このコードを実行すると、"abc"や"-50"のような無効なデータは処理されず、数値のみが処理されます。

8. よくある間違いと注意点

8. よくある間違いと注意点
8. よくある間違いと注意点

breakcontinueの使用において、初心者が陥りがちなミスを紹介し、回避するためのポイントを説明します。

間違い1: break を使うべきところで continue を使ってしまう

間違ったコードの例を見てみましょう。


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        continue; // ここをbreakにするべきだった
    }
    echo $i . " ";
}
?>

このコードでは、5の時にスキップされるだけで、ループは最後まで続いてしまいます。

正しくは、以下のようにするべきです。


<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        break; // 5になったらループ終了
    }
    echo $i . " ";
}
?>

間違い2: continue を適切な場所に書かない

例えば、continueを使うべき場所を誤ると、意図しない処理が行われることがあります。


<?php
for ($i = 1; $i <= 5; $i++) {
    echo "ループ開始: " . $i . "<br>";
    if ($i == 3) {
        continue;
    }
    echo "処理終了: " . $i . "<br>";
}
?>

このコードでは、$iが3のときだけ"処理終了"の出力がスキップされます。

間違い3: 無限ループに注意する

while文の中でbreakを適切に使用しないと、無限ループに陥ることがあります。


<?php
$i = 1;
while (true) {
    echo $i . "<br>";
    if ($i == 5) {
        break; // この条件がないと無限ループになる
    }
    $i++;
}
?>

無限ループを避けるためには、breakを適切に配置することが重要です。

9. ポイント整理

9. ポイント整理
9. ポイント整理

今回の記事では、PHPのbreakcontinueの基本的な使い方から、具体的な活用例、注意点まで解説しました。

  • break: ループを途中で終了する。
  • continue: 現在の処理をスキップし、次のループへ進む。
  • データ検索、入力チェックなどの実用的な場面で役立つ。
  • 間違った使い方をすると意図しない動作になりやすい。
  • 無限ループにならないようにbreakを適切に配置する。

PHPのループ制御を適切に使うことで、無駄な処理を省き、効率的なプログラムを書くことができます。今回の解説を活用し、実際のコードに役立ててください。

まとめ

まとめ
まとめ

今回はPHPにおけるbreakcontinueの使い方について、基本から実践的な活用例まで詳しく学びました。breakはループ処理を途中で終了させるための命令であり、一方のcontinueは処理の一部をスキップして次のループへ移る命令です。特にforwhileforeachなど、様々なループ構文と組み合わせることで、効率よく処理を制御することができます。

実際の開発現場では、breakは検索処理や早期終了が必要なケースで使用され、continueはバリデーションチェックや不要なデータをスキップする場面で頻繁に使われます。例として、ユーザー入力の中から数値だけを処理する場面や、リストの中から特定のデータが見つかったら終了するような場面で効果的です。

また、間違った使い方にも注意が必要です。例えばbreakを使うべき場所でcontinueを使ってしまうと、ループが終了せずに思ったような結果にならないことがあります。さらに、whileループ内でbreakを忘れると無限ループになる危険性もあるため、条件の書き方にも慎重になる必要があります。

正しい使い方を理解し、実践に活かすことで、コードの可読性とパフォーマンスが大きく向上します。PHP初心者の方でも、breakcontinueをしっかりとマスターすれば、より柔軟で効率的なプログラムを書くことができるようになります。

サンプルコードでおさらい

以下は、ループ内でcontinueを使って、特定の文字列だけをスキップする例です。



このコードを実行すると「バナナ」だけが出力されず、他の果物だけが表示されます。continueの動作がよくわかるシンプルな例です。

次に、breakの使い方です。特定の果物を見つけたらループを終わらせます。



この例では「なし」が見つかったところでループが終了します。検索処理の基本的なパターンです。

先生と生徒の振り返り会話

新人

「breakとcontinueって、最初は似ているように感じたけど、実際には全然違う動きをするんですね!」

先輩

「そうそう。breakはループを止める、continueはスキップする。どちらも使い所を間違えると、思わぬバグになるから注意が必要だよ。」

新人

「特にユーザーの入力チェックのときなんかに便利そうですね。continueで不正データを飛ばしたり、breakで条件満たしたら止めたり。」

先輩

「その通り!現場でもよく使うから、今日の内容は確実に身につけておこう!」

新人

「はい! breakとcontinue、しっかり使いこなせるようになりたいです!」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPのbreakとは何ですか?ループの終了方法について教えてください

PHPのbreakは、for文やwhile文、foreach文などのループ処理を途中で終了させるための構文です。特定の条件を満たしたときにループから抜けたい場合に使います。

PHPのcontinueの意味と使い方を教えてください

continueは、現在のループ処理をスキップして次の繰り返しへ進めるためのPHP構文です。特定の条件でそのループの処理だけ飛ばしたいときに使います。

PHPのbreakとcontinueの違いがわかりません

breakはループ全体を終了させるのに対し、continueは現在のループだけをスキップして次の繰り返しへ進みます。目的とタイミングが異なります。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

PHP の制御構造の記事一覧へ
新着記事
New1
Python
Pythonの整数と浮動小数点数の違いとは?数値型の基本を解説
New2
Python
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
New3
Python
Pythonのbreakとcontinueの違いとは?ループの制御方法をマスター
New4
Python
Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.2
Java&Spring記事人気No2
PHP
PHP の文字列のフォーマット(sprintf, printf)
No.3
Java&Spring記事人気No3
Python
Pythonで文字列を置換する方法!replace()の使い方と正規表現の活用
No.4
Java&Spring記事人気No4
Python
Pythonでリストを分割する方法(スライス / split() / itertools)
No.5
Java&Spring記事人気No5
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.6
Java&Spring記事人気No6
Python
Pythonのクロージャー(Closure)とは?関数内関数とnonlocalの活用
No.7
Java&Spring記事人気No7
Python
Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック
No.8
Java&Spring記事人気No8
PHP
PHPの認証機能を実装する方法!初心者でもわかるログイン・ログアウト処理の基本