forとwhileループ
for、while、do-whileループでコードを繰り返し実行します。
「forとwhileループ」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全4レッスンが含まれています。
ループを使う理由
ループを使うと、コードをコピー&ペーストせずにブロックを繰り返し実行できます。PHPには4種類のループ構文があります。
for— 反復回数が既知の場合while— 条件によって制御する場合do-while— 少なくとも1回は実行する場合foreach— 配列やオブジェクトを反復処理する場合(次のレッスン)
for ループ
for ループには、初期化、条件、インクリメントの3つの部分があります。
<?php
for ($i = 0; $i < 5; $i++) {
echo $i . ' ';
}
// Output: 0 1 2 3 4for ループでのカウントダウン
カウントダウンしたり、任意の量ずつ増減したりできます。
<?php
// Count down
for ($i = 10; $i >= 1; $i--) {
echo $i . ' ';
}
// Step by 2
for ($i = 0; $i <= 10; $i += 2) {
echo $i . ' '; // 0 2 4 6 8 10
}while ループ
while ループは、条件が true である間実行されます。条件は各反復の前にチェックされます。
<?php
$n = 1;
while ($n <= 5) {
echo $n . ' ';
$n++;
}
// Output: 1 2 3 4 5do-while ループ
do-while は本体を必ず少なくとも1回実行します。条件は後でチェックされます。
<?php
$attempt = 0;
do {
echo 'Trying... attempt ' . ($attempt + 1) . PHP_EOL;
$attempt++;
} while ($attempt < 3 && !connectToServer());
function connectToServer(): bool { return false; }無限ループと break
無限ループは、break で抜けない限り永遠に実行されます。
<?php
$count = 0;
while (true) {
$count++;
if ($count >= 5) {
break; // exit loop
}
}
echo $count; // 5continue — 反復をスキップ
continue は現在の反復の残りをスキップし、次の反復に移ります。
<?php
for ($i = 1; $i <= 10; $i++) {
if ($i % 2 === 0) {
continue; // skip even numbers
}
echo $i . ' '; // 1 3 5 7 9
}ネストしたループ
ループはネストできます。グリッドや表などの2次元データに便利です。
<?php
for ($row = 1; $row <= 3; $row++) {
for ($col = 1; $col <= 3; $col++) {
echo "($row,$col) ";
}
echo PHP_EOL;
}
// (1,1) (1,2) (1,3)
// (2,1) (2,2) (2,3)
// (3,1) (3,2) (3,3)ネストしたループから抜ける
break 2(または任意の数値)を使うと、複数のループ階層から一度に抜けられます。
<?php
for ($i = 0; $i < 5; $i++) {
for ($j = 0; $j < 5; $j++) {
if ($i === 2 && $j === 2) {
break 2; // exits both loops
}
echo "$i,$j ";
}
}ループのパフォーマンスに関するヒント
ループの条件内でコストの高い処理を行わないようにしてください。
<?php
// Bad: count() called on every iteration
for ($i = 0; $i < count($arr); $i++) { /* ... */ }
// Good: calculate once
$len = count($arr);
for ($i = 0; $i < $len; $i++) { /* ... */ }
// Also fine: foreach avoids this entirely
foreach ($arr as $item) { /* ... */ }ループの代替構文
if と同様に、ループもHTMLへの埋め込みに使える代替のコロン構文をサポートしています。
<?php $items = ['apple', 'banana', 'cherry']; ?>
<ul>
<?php for ($i = 0; $i < count($items); $i++): ?>
<li><?= htmlspecialchars($items[$i]) ?></li>
<?php endfor; ?>
</ul>クイックチェック
本体が少なくとも1回実行されることが保証されているループはどれですか。
まとめ: for と while ループ
ループのまとめです。
for— 反復回数が分かっている場合に最適while— 各反復の前に条件をチェックdo-while— 本体を少なくとも1回実行breakはループを終了し、break Nは N 個の階層を終了continueは次の反復へスキップ
次は、配列を反復処理する foreach です。
よくある質問
「forとwhileループ」レッスンは無料ですか?
はい。「forとwhileループ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全4レッスンが含まれています。
「forとwhileループ」で何を学びますか?
for、while、do-whileループでコードを繰り返し実行します。 ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「forとwhileループ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- if、elseif、else
- SwitchとMatch文
- forとwhileループ
- foreachとループ制御