【独学PHP】繰り返し処理(forなど)

※この記事は「2020年9月4日」に更新しました。

独学できる PHP講座。

今回は、繰り返し処理(forなど)について。

前回は、条件分岐(ifなど)について、解説しました。

【独学PHP】条件分岐(ifなど)

【独学PHP】条件分岐(ifなど)

2020年8月29日

for文や while文などの違いを説明していきます。

繰り返し処理

条件分岐と同じくよく利用されるのが、繰り返し処理です。

PHP では、while文、for文、foreach文など、似たような命令がいくつかあります。



while文

while文は、与えられた条件式が TRUE である間、ループ処理を繰り返します。

条件式による判定は処理をする前に行われます。

while (条件式) {
    // 条件式が TRUE である間、繰り返し実行する処理
}

do~while文

do~while文は、与えられた条件式が TRUE のある間、ループ処理を繰り返します。

while文との違いは、条件式による判定が処理をする前か後かの違いです。

do {
    // 条件式が TRUE である間、繰り返し実行する処理
} while (条件式);

for文

for文は、指定された回数だけ処理を繰り返すときに使います。

for (初期化式; 条件式; 条件式の変化) {
    // 条件式が TRUE である間、繰り返し実行する処理
}

foreach文

foreach文は、指定された配列(連想配列)の要素の数だけ処理を繰り返す時に使います。

先頭から順番に処理します。

foreach (配列 as 値変数) {
    // 繰り返し実行する処理
}

連想配列の場合は、以下のように書きます。

foreach (連想配列 as キー変数 => 値変数) {
    // 繰り返し実行する処理
}

キー変数と値変数はまとめて仮変数と言ったりします。

配列や連想配列のキーや値を一時的に格納するための変数です。

サンプルプログラム

繰り返し処理を理解するためのサンプルプログラムです。

test1.php という以下のファイルを作成します。

<?php
$i = 1;

while ($i < 6) {
    print "while文、{$i}番目の処理です。<br />";
    $i++;
}

do {
    print "do~while文、{$i}番目の処理です。<br />";
    $i++;
} while ($i < 6);
?>

実行結果は以下の通りです。

繰り返し処理(forなど)

ポイントは共通のカウンタ($i)を使っている点と do~while文は、条件式による判定が処理が終わってからになる点です。

つまり、カウンタ($i)が while文から抜けた段階で 6 になっているにも関わらず、do~while文は、1回実行されています。

続いて、test2.php という以下のファイルを作成します。

<?php
$data = ['Warrior', 'Wizard', 'Ninja']

for($i = 1; $i < 6; $i++) {
    print "{$i}番目の処理です。<br />";
}

foreach ($data as $value) {
    print "職業は {$value} です。<br />";
}
?>

実行結果は以下の通りです。

繰り返し処理(forなど)

for文に関しては、test1.php の while文と内容は同じです。

foreach文も使っています。

最後に

いかがでしょうか。

今回は、繰り返し処理(forなど)について、解説しました。

色々紹介しましたが、違いを理解して、適切に使い分けができるように試していきましょう。