PHPでfor文とwhile文で繰り返しを学ぼう!

📁 作成ファイル・保存場所

XAMPPがインストールされているhtdocs フォルダに以下のファイルを作成してください。

ファイル名内容
htdocs/php-basic/04.phpPHPとHTML
  • XAMPP(Apacheが起動していること)
  • XAMPPがインストールされているhtdocs フォルダに内に作成されていること

今回のテーマ

繰り返し処理(ループ)の基本を学ぶ
for文とwhile文を使って、同じ処理を何度も繰り返す方法を身につけよう!

目的

  • forwhile の違いと使い方を理解する
  • 繰り返し処理の基本構文に慣れる
  • breakcontinue の使い方も体験する

チェックポイント

  • for 文で「決まった回数」繰り返せる?
  • while 文で「条件が成り立つ間」繰り返せる?
  • breakcontinue を使ってループ制御できる?

繰り返し文 for文とwhile文

for文とは?

for 文は「回数が決まっている繰り返し」に使います。
最初に「初期化」「条件」「更新」の3つをセットで書くのが特徴です。

for ($i = 1; $i <= 5; $i++) {
    echo $i;
}
  • $i = 1:カウンタ変数の初期値
  • $i <= 5:ループを続ける条件
  • $i++:ループごとに値を更新

while文とは?

while 文は「条件が成り立つ間だけ繰り返す」文です。
回数が決まっていない場合や、動的に変わる条件で使いたいときに適しています。

$i = 1;
while ($i <= 5) {
    echo $i;
    $i++;
}
  • 最初に条件だけを書き、その中でカウントアップ処理を書く必要があります
  • カウントアップを忘れると「無限ループ」になるので注意!

制御構文:break と continue

  • break;:ループを強制的に抜ける
  • continue;:その回の処理だけスキップし、次のループに進む

PHP基礎トレーニング

<?php
//for文で1〜5を表示しよう
for ($i = 1; $i <= 5; $i++) {
    echo "これは {$i} 回目のループです<br>";
}

//while文で1〜5を表示しよう
$count = 1;
while ($count <= 5) {
    echo "whileループ:{$count} 回目<br>";
    $count++;
}

//for文で1〜10のうち、5になったらループを終了(break)
for ($i = 1; $i <= 10; $i++) {
    if ($i === 5) {
        break;
    }
    echo "{$i} 回目のループ<br>";
}

//while文で1〜5のうち、3だけスキップ(continue)
$i = 1;
while ($i <= 5) {
    if ($i === 3) {
        $i++;
        continue;
    }
    echo "{$i} を表示中<br>";
    $i++;
}

//whileはいつ終わるかわからない場合にも使えます
$total = 0;
$i = 1;
while ($total < 10) {
    $total += $i;
    echo "{$i} を足して合計は {$total} です<br>";
    $i++;
}
?>

表示確認の手順

下記のコード入力が終わったら、以下の手順で動作を確認してみましょう。

  1. XAMPP を起動
     「Apache」が起動していることを確認します。
  2. ブラウザを開く
     Google Chrome など、普段使っているブラウザを開きます。
  3. アドレスバーに入力
     次のURLを直接入力して Enter を押します
http://localhost/php-basic/
  1. 01.php をクリック
     フォルダ一覧の中に「02.php」というファイル名が見えたら、それをクリックしてください。
  2. ページが表示されれば成功!
     「PHP基礎学習のスタートです」や「ウェブトレーニングで頑張りましょう」などの文字が表示されていれば、PHPが正しく動いています。

PHP応用トレーニング

for文のネストを使って九九計算を作ってみましょう。

<?php
// 九九の出力(1〜9)
for ($i = 1; $i <= 9; $i++) {
    for ($j = 1; $j <= 9; $j++) {
        $result = $i * $j;
        echo "{$i} × {$j} = {$result}<br>";
    }
}
?>

さらにHTMLのテーブル内で九九が表示するようにステップアップしましょう。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>九九表</title>
    <style>
        table {
            border-collapse: collapse;
        }
        td, th {
            border: 1px solid #999;
            padding: 8px;
            text-align: center;
        }
        th {
            background-color: #f0f0f0;
        }
    </style>
</head>
<body>
    <h1>九九表</h1>
<table>
    <tbody>
        <?php for ($i = 1; $i <= 9; $i++): ?>
            <tr>
                <?php for ($j = 1; $j <= 9; $j++): ?>
                    <td><?php echo $i * $j; ?></td>
                <?php endfor; ?>
            </tr>
        <?php endfor; ?>
    </tbody>
</table>
</body>
</html>

PHPのfor文では、中かっこ { } の代わりに「:」と「endfor;」で囲むことができます。
この書き方は、HTMLの中で使うとコードが読みやすくなります。

  <?php for ($i = 1; $i <= 9; $i++): ?>
      繰り返し内容
  <?php endfor; ?>

同様に、if文では「endif;」、while文では「endwhile;」と書けます。