chatGPTに記事を書いてもらってます
プログラムでは、同じ処理を何度も繰り返したいことがよくあります。
そんなときに使うのが 「ループ文」 と呼ばれるものです!
PHPでよく使うループ文は、主に以下の3つです
ループの種類 | こんなときに使う |
---|---|
for 文 | 回数が決まっているとき |
while 文 | 条件が合っている間だけ繰り返すとき |
foreach 文 | 配列を1つずつ取り出すとき |
for 文(回数が決まっているとき)
<?php for ($i = 1; $i <= 5; $i++) { echo $i . "<br>"; } ?>
このコードは「1〜5を順番に表示する」処理です。
ポイント:
- $i = 1:スタートは1から
- $i <= 5:5以下の間繰り返す
- $i++:1ずつ増やしていく
while 文(条件が合う間繰り返す)
<?php $i = 1; while ($i <= 5) { echo $i . "<br>"; $i++; } ?>
for 文と同じ結果になりますが、条件だけで制御するのが while 文です。
foreach 文(配列を1つずつ取り出す)
<?php $colors = ["赤", "青", "緑"]; foreach ($colors as $color) { echo $color . "<br>"; } ?>
これは「配列 $colors にあるすべての色」を1つずつ表示する処理です。
$color の部分には、配列の中身が順番に入ってきます。
※配列については次回学びます。配列というものがあるとだけ頭に入れておきましょう
まとめ
キーワード | 説明 |
---|---|
for | 回数が決まっている繰り返し |
while | 条件が合う間ずっと繰り返す |
foreach | 配列の中身を1つずつ取り出すときに使う |
おまけ:break と continue
ループの中で以下の2つもよく使います
キーワード | 説明 |
---|---|
break | 繰り返しを途中で終わらせる |
continue | 今の1回をスキップして次に進む |
break と continue ってなに?
ループの中で「特定の条件のときに、ループの動きを変えたい」って思うことありませんか?
そんなときに活躍するのが break と continue です!
break:繰り返しを途中でやめたいとき
break は、ループを強制的に終了する命令です。
<?php for ($i = 1; $i <= 10; $i++) { if ($i == 5) { break; } echo $i . "<br>"; } ?>
この場合、$i が 5 になったら break でループを終了するので…
表示されるのは 1〜4 だけになります
continue:今の回をスキップしたいとき
<?php for ($i = 1; $i <= 5; $i++) { if ($i == 3) { continue; } echo $i . "<br>"; } ?>
この場合、$i が 3 のときだけスキップされて…
表示されるのは 1, 2, 4, 5!
無限ループに注意!
ループを書くときにうっかり条件を間違えると、ずーっと終わらない「無限ループ」になってしまうことがあります。
こんなミス、やりがち!
<?php $i = 1; while ($i <= 5) { echo $i . "<br>"; // $i++; を忘れてる!! } ?>
このコードは $i がずっと 1 のままなので、
「$i <= 5」 という条件が ずっと true のままです。
その結果… ページが終わらない!ブラウザが止まる!
無限ループを防ぐポイント
- for文 なら「初期値・条件・増減」をちゃんと書く
- while文 では「条件が変化するようにする」こと
- break を使って、万が一の脱出ルートを作っておくのもアリ!
意図的な無限ループを書くときもある!
<?php $i = 1; while (true) { // 条件によって break する } ?>
こういう使い方もありますが、ちゃんと break で抜けられる設計が必要です。
初心者のうちは、まず 「ループからちゃんと抜ける」 ことを意識して書いてみましょう!
次回は「配列」について学びます!