章: 第1章: 文法の土台
ループの途中で「この要素は処理しなくていい」「条件を満たしたのでやめよう」——どう書きますか?
for・foreach・while のすべてのループで使える break と continue を知ると、ループ内の制御が柔軟になります。不要な処理をスキップしたり、条件を満たした時点でループを抜けたりできるようになり、パフォーマンスとコードの読みやすさが向上します。
まずコードを動かしてみる
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i === 3) continue;
if ($i === 8) break;
echo $i;
}
continue で3をスキップし、break で8の前にループを終了しています。出力は 124567 になります。
break と continue の使い分け
| break | continue | |
| 動作 | ループを完全に終了する | 現在の繰り返しをスキップして次へ |
| 使う場面 | 目的の要素を見つけた・条件達成時に終了 | 特定の要素だけ処理をスキップしたい |
| switch文 | caseを終了するためにも使う | 使えない |
悪い例(フラグ変数でループ終了を管理)
<?php
$found = false;
foreach ($items as $item) {
if (!$found && $item['id'] === 5) {
process($item);
$found = true;
}
}
良い例(breakで明確に終了)
<?php
foreach ($items as $item) {
if ($item['id'] === 5) {
process($item);
break; // 見つかったのでループ終了
}
}
チェックポイント:
break 2やcontinue 2のように数値を指定すると、ネストしたループを外側まで制御できます。ただし読みにくくなるため、ネストが深い場合は関数分割を検討しましょう。
まとめ & 次のステップ
breakはループを完全に終了し、continueは現在の繰り返しをスキップする- 目的のデータが見つかったら
breakで早期終了するとパフォーマンスが上がる - 条件に合わない要素を
continueでスキップするとネストが浅くなり読みやすい break 数値continue 数値でネストされた外側のループも制御できる- フラグ変数でループを制御するより
break/continueのほうが意図が明確
次回は 配列(添字配列)を学びます。複数のデータをまとめて扱う、PHPの中核データ構造です。