カテゴリ: PHP 更新日: 2025/05/29

PHPのfor, while, do-whileループの使い方を完全ガイド!初心者でもわかる繰り返し処理

PHP の for, while, do-while ループの使い方
PHP の for, while, do-while ループの使い方

新人と先輩の会話形式で理解しよう

新人

「PHPで同じ処理を何回も繰り返す方法はありますか?」

先輩

「はい、PHPには繰り返し処理を行うためのループ文があります。特にforwhiledo-whileがよく使われます。」

新人

「ループ文って何ですか?どんなときに使うんですか?」

先輩

「それでは、ループの基本から説明していきますね!」

-

1. ループとは?

1. ループとは?
1. ループとは?

ループとは、プログラム内で同じ処理を繰り返す仕組みのことです。例えば、10回「こんにちは!」と表示したいとき、同じecho文を10回書くのは面倒ですよね?

そんなときに、ループを使うと、短いコードで繰り返し処理が実現できます。

ループを使わない場合


<?php
echo "こんにちは!";
echo "こんにちは!";
echo "こんにちは!";
echo "こんにちは!";
echo "こんにちは!";
?>

出力結果:


こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!

このように、同じ処理を何度も書くのは効率が悪いです。そこで、ループを使うと以下のように簡単に書けます。


<?php
for ($i = 0; $i < 5; $i++) {
    echo "こんにちは!";
}
?>

出力結果:


こんにちは!
こんにちは!
こんにちは!
こんにちは!
こんにちは!

このように、ループを使うことで、短いコードで同じ処理を繰り返すことができます。

2. forループの使い方(基本的な例と仕組み)

2. forループの使い方(基本的な例と仕組み)
2. forループの使い方(基本的な例と仕組み)

forループは、決まった回数だけ繰り返したいときに便利です。基本的な構文は次のようになります。


<?php
for (初期化; 条件; 増減) {
    // 繰り返し処理
}
?>

具体的に、1から5までの数字を順番に表示するコードを見てみましょう。


<?php
for ($i = 1; $i <= 5; $i++) {
    echo "現在のカウント: " . $i . "<br>";
}
?>

出力結果:


現在のカウント: 1
現在のカウント: 2
現在のカウント: 3
現在のカウント: 4
現在のカウント: 5

forループの各部分の説明

  • 初期化 - ループが始まるときに、最初に実行する処理(例:$i = 1
  • 条件 - ループを続けるかどうかを判断する条件(例:$i <= 5
  • 増減 - ループが1回終わるごとに実行する処理(例:$i++

forループの活用例

例えば、商品の一覧を10個表示する場合は次のように書けます。


<?php
for ($i = 1; $i <= 10; $i++) {
    echo "商品" . $i . "を表示<br>";
}
?>

出力結果:


商品1を表示
商品2を表示
商品3を表示
商品4を表示
商品5を表示
商品6を表示
商品7を表示
商品8を表示
商品9を表示
商品10を表示

このように、forループを使うことで、リストや表のデータを簡単に作成することができます。

3. whileループの使い方(繰り返し処理を理解する)

3. whileループの使い方(繰り返し処理を理解する)
3. whileループの使い方(繰り返し処理を理解する)

whileループは、特定の条件が満たされている間、処理を繰り返すループです。

例えば、「条件が満たされるまでループを続ける」というような処理に使います。

whileループの基本構文


<?php
while (条件) {
    // 繰り返し処理
}
?>

具体的に、1から5までの数字を順番に表示するコードを見てみましょう。


<?php
$i = 1;

while ($i <= 5) {
    echo "現在のカウント: " . $i . "<br>";
    $i++;
}
?>

出力結果:


現在のカウント: 1
現在のカウント: 2
現在のカウント: 3
現在のカウント: 4
現在のカウント: 5

whileループでは、条件が満たされている間、処理を実行し続けます。

条件がfalseになるとループが終了します。

4. do-whileループの使い方(whileとの違い)

4. do-whileループの使い方(whileとの違い)
4. do-whileループの使い方(whileとの違い)

do-whileループは、必ず1回は処理を実行してから、条件をチェックするループです。

つまり、条件がfalseであっても、少なくとも1回は処理が実行されます。

do-whileループの基本構文


<?php
do {
    // 繰り返し処理
} while (条件);
?>

以下の例では、カウントを1から5まで表示します。


<?php
$i = 1;

do {
    echo "現在のカウント: " . $i . "<br>";
    $i++;
} while ($i <= 5);
?>

出力結果:


現在のカウント: 1
現在のカウント: 2
現在のカウント: 3
現在のカウント: 4
現在のカウント: 5

このコードでは、条件を満たしている間、処理が実行されますが、doブロックの処理は必ず1回実行されます。

whileとdo-whileの違い

違いを比較するために、初期値を6に設定した場合を見てみましょう。

whileループの場合


<?php
$i = 6;

while ($i <= 5) {
    echo "現在のカウント: " . $i . "<br>";
    $i++;
}
?>

出力結果:


(何も出力されません)

do-whileループの場合


<?php
$i = 6;

do {
    echo "現在のカウント: " . $i . "<br>";
    $i++;
} while ($i <= 5);
?>

出力結果:


現在のカウント: 6

このように、do-whileループは、条件に関係なく必ず1回は処理を実行します。

-

5. for, while, do-whileの使い分け(どのような場面で使うべきか)

5. for, while, do-whileの使い分け(どのような場面で使うべきか)
5. for, while, do-whileの使い分け(どのような場面で使うべきか)

どのループを使えばよいか迷ったときは、次の基準で判断すると良いでしょう。

forループを使う場合

繰り返す回数が決まっているとき。

例:1から10までの数を表示


<?php
for ($i = 1; $i <= 10; $i++) {
    echo $i . "<br>";
}
?>

whileループを使う場合

条件が満たされている間だけ処理を繰り返したいとき。

例:ユーザーが入力した数が10未満なら繰り返す


<?php
$number = 1;

while ($number < 10) {
    echo $number . "<br>";
    $number++;
}
?>

do-whileループを使う場合

少なくとも1回は処理を実行したいとき。

例:最低1回は入力を求める


<?php
do {
    echo "1回は実行されます!<br>";
} while (false);
?>

ループの選び方まとめ

ループの種類 特徴 適した場面
forループ 決まった回数だけ繰り返す 配列の要素を順番に処理するとき
whileループ 条件が満たされている間繰り返す ユーザーの入力を待つとき
do-whileループ 必ず1回は実行される メニュー表示や入力チェック

これで、PHPのループの使い分けについて理解できましたね!

6. ループのネスト(入れ子構造)を使う方法

6. ループのネスト(入れ子構造)を使う方法
6. ループのネスト(入れ子構造)を使う方法

ループのネスト(入れ子構造)とは、ループの中に別のループを入れることです。

例えば、2重ループを使うことで、表のデータを出力する処理や、九九の表を作ることができます。

2重ループの基本構文


<?php
for ($i = 1; $i <= 3; $i++) {
    for ($j = 1; $j <= 3; $j++) {
        echo "i=$i, j=$j <br>";
    }
}
?>

出力結果:


i=1, j=1
i=1, j=2
i=1, j=3
i=2, j=1
i=2, j=2
i=2, j=3
i=3, j=1
i=3, j=2
i=3, j=3

九九の表を作る

ネストされたループを使って、九九の表を作ってみましょう。


<?php
for ($i = 1; $i <= 9; $i++) {
    for ($j = 1; $j <= 9; $j++) {
        echo $i * $j . " ";
    }
    echo "<br>";
}
?>

出力結果:


1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

7. ループ処理を活用した実践的なコード(配列のデータを繰り返し処理)

7. ループ処理を活用した実践的なコード(配列のデータを繰り返し処理)
7. ループ処理を活用した実践的なコード(配列のデータを繰り返し処理)

PHPではループを使って配列のデータを繰り返し処理することがよくあります。

forループを使った配列処理


<?php
$fruits = ["りんご", "バナナ", "オレンジ"];

for ($i = 0; $i < count($fruits); $i++) {
    echo "フルーツ: " . $fruits[$i] . "<br>";
}
?>

出力結果:


フルーツ: りんご
フルーツ: バナナ
フルーツ: オレンジ

foreachループを使った配列処理

PHPでは、配列を処理するためにforeachループが便利です。


<?php
$fruits = ["りんご", "バナナ", "オレンジ"];

foreach ($fruits as $fruit) {
    echo "フルーツ: " . $fruit . "<br>";
}
?>

出力結果:


フルーツ: りんご
フルーツ: バナナ
フルーツ: オレンジ

連想配列のデータを繰り返し処理

キーと値を持つ連想配列を処理する場合もforeachが使えます。


<?php
$prices = [
    "りんご" => 150,
    "バナナ" => 100,
    "オレンジ" => 120
];

foreach ($prices as $fruit => $price) {
    echo $fruit . "の価格は" . $price . "円です。<br>";
}
?>

出力結果:


りんごの価格は150円です。
バナナの価格は100円です。
オレンジの価格は120円です。

8. PHPのループを学ぶための練習問題

8. PHPのループを学ぶための練習問題
8. PHPのループを学ぶための練習問題

最後に、ループの理解を深めるための練習問題をいくつか用意しました。

問題1: 1から10までの偶数を表示する

forループを使って、1から10までの偶数を出力するプログラムを作成してください。


<?php
for ($i = 2; $i <= 10; $i += 2) {
    echo $i . "<br>";
}
?>

問題2: whileループで1から5までの合計を求める

whileループを使って、1から5までの数の合計を求めてください。


<?php
$sum = 0;
$i = 1;

while ($i <= 5) {
    $sum += $i;
    $i++;
}

echo "合計: " . $sum;
?>

問題3: do-whileループでユーザーが「終了」と入力するまでメッセージを表示する

do-whileループを使って、「終了」と入力されるまでメッセージを表示してください。


<?php
do {
    $input = readline("メッセージを入力(終了するには「終了」と入力): ");
    echo "入力されたメッセージ: " . $input . "\n";
} while ($input !== "終了");
?>

まとめ

ここまで、PHPのループの使い方を学んできました。

  • forループ:決まった回数の繰り返しに適している
  • whileループ:条件が満たされる間繰り返す
  • do-whileループ:最低1回は実行される
  • ネスト(入れ子)ループ:二重ループを使って表などを作成
  • 配列とループ:forループやforeachを活用

これで、PHPの繰り返し処理をしっかり理解できましたね!

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
Pythonのエラーメッセージの読み方!よくあるエラーと解決方法
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
Pythonの条件式でNoneを判定する方法!is None vs == None の違い
Pythonのpass文とは?一時的なコードブロックをスキップする方法
人気記事
No.1
Java&Spring記事人気No1
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.2
Java&Spring記事人気No2
PHPとは?初心者向けにわかりやすく解説
No.3
Java&Spring記事人気No3
PHPの関数(function)の基本を完全ガイド!初心者でもわかる使い方
No.4
Java&Spring記事人気No4
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
-