反復構造

PHPはwhile文以外にもfor文による反復構造をサポートしています。まずはwhile文についておさらいしておきましょう。前節で取り上げたプログラム(loop2.php)を再掲します。

<?php
$names = ["Andy", "Betty", "Carol"];

$i = 0; // 1.初期化処理
while ($i < 3) { // 2.反復条件
    echo "Hello ";
    echo $names[$i] . PHP_EOL;
    $i++; // 3.増分処理
}

ここではプログラムの中にコメントも合わせて記述しています。1つ目のコメントについて見てみましょう。

$i = 0; // 1.初期化処理

ここでは初期化処理として変数$i0で初期化しています。

初期化という言い方に戸惑うかもしれません。初めて使う変数にデータを代入することを初期化と呼んでいます。

次に2つ目のコメントは反復条件(条件式)を表しています。

while ($i < 3) { // 2.反復条件

条件式$i < 3が成立する間、反復処理{}を繰り返すことになります。

3つ目のコメントは変数のインクリメントです。これを増分処理と呼んでいます。

$i++; // 3.増分処理

インクリメント演算子++によって変数$iのデータが1増えることになります。

while文のような反復構造はここで紹介した3つの処理(初期化処理、反復条件、増分処理)を合わせて記述することが一般的です。もし増分処理$i++;を書き忘れてしまうとどうなるのでしょうか。

<?php
$names = ["Andy", "Betty", "Carol"];

$i = 0; // 1.初期化処理
while ($i < 3) { // 2.条件式
    echo "Hello ";
    echo $names[$i] . PHP_EOL;

}

上記のプログラムの場合、反復処理の中で変数$iが更新されないので処理は無限に繰り返してしまうことになります。


前へ | 次へ