ch01 6章中 1章目

ch01 — for 文

スライドで見る

この章を AI と学ぶ

💬 AI に聞く質問例 3 件
  1. 「ch01 — for 文」のつまずきやすいポイントを、初学者向けに3つ教えてください

    ChatGPT Claude Gemini

  2. 「ch01 — for 文」について、自分の手で試せる練習問題を3つ出してください (難易度を上げながら)

    ChatGPT Claude Gemini

  3. 「ch01 — for 文」を学んだ後、次に学ぶと良いトピックは何ですか?理由も教えてください

    ChatGPT Claude Gemini

概要

プログラムの仕事の多くは「同じような処理を繰り返す」ことだ。1 から 100 までの数を出力したい時、echo 1; echo 2; ... と 100 行書くのは現実的ではないし、コピペで済ませようとした瞬間にバグの温床になる。ループは、この「繰り返し」をコンピュータに任せて、人間が書くコードを 1 ブロックに圧縮するためのしくみだ。

PHP で最も基本的なループが forfor ($i = 0; $i < N; $i++) という形は、3 つのパートで構成されている。初期化 ($i = 0、ループ開始前に 1 回だけ実行)、条件 ($i < N、毎回チェックされ、真の間だけ繰り返す)、更新 ($i++、各反復の最後に実行)。この 3 点セットで「何回回るか」が明示できるので、回数が事前に分かっているループには for が最適になる。

初学者がここで一番踏むのが オフバイワンエラー だ。「1 から N まで」のつもりで $i < N と書くと N が出力されない (実際は 1 から N-1 までしか回らない)。<= を使うか、開始を 1 にして $i <= N にするか、流派は色々あるが、まずは自分で書いて 1 つズレた結果を見ることが最大の学びになる。もうひとつ、$i++ を書き忘れたり条件を絶対に偽にならない式にすると 無限ループ に突入してターミナルが止まる。Ctrl+C で止められる、と最初に知っておくと安心できる。

学習目標

  • for ($i = 0; $i < N; $i++) の 3 つの部分の意味を言える
  • 同じ処理を N 回繰り返せる
  • カウンタ変数 $i を使って値を 1 つずつ変えながら処理できる

ドリル

no 内容
01 1 から 5 までを 1 行ずつ出力
02 入力 N で 1+2+...+N の合計を出力
03 入力 N で N の段の九九を出力

解説スライド 全 7 枚

右の ボタン キー(またはスワイプ)で次のスライドに進めます。 下の「縦表示」を開くと全スライドを一気に読めます。

  1. for 文

    Lesson 3 / Chapter 1

  2. 同じ処理を何回も書くのは大変

    <?php
    echo "1\n";
    echo "2\n";
    echo "3\n";
    echo "4\n";
    echo "5\n";
    • 5 回ならまだ書ける
    • 100 回なら? 1000 回なら?
    • ループ を使えば 1 回書くだけで済む
  3. for 文の形

    <?php
    for ($i = 1; $i <= 5; $i++) {
        echo $i . "\n";
    }

    実行結果:

    1
    2
    3
    4
    5
    • for (初期化; 条件; 更新) { 処理 }
    • 条件が真の間、{ } の中を繰り返す
  4. 3 つの部分を分解する

    for ($i = 1; $i <= 5; $i++) {
        echo $i . "\n";
    }
    部分 役割 実行タイミング
    $i = 1 初期化 ループ開始時に 1 回だけ
    $i <= 5 条件 毎回チェック (真なら続行)
    $i++ 更新 1 回処理した後に実行
  5. $i++ は「1 増やす」

    <?php
    $i = 0;
    $i++;       // $i = 1
    $i++;       // $i = 2
    echo $i;    // 2
    • $i++$i = $i + 1 と同じ
    • ループのカウンタを進めるためによく使う
    • $i-- なら 1 減らす
  6. 0 から始める書き方もある

    <?php
    for ($i = 0; $i < 5; $i++) {
        echo $i . "\n";   // 0 1 2 3 4
    }
    • $i = 0 開始 + $i < 5 条件 → 0 から 4 まで 5 回
    • $i = 1 開始 + $i <= 5 条件 → 1 から 5 まで 5 回
    • どちらも 5 回繰り返すが、出る値が違うので問題に合わせる
  7. このチャプターでできるようになること

    for 文で決まった回数だけ処理を繰り返せる ✅ カウンタ変数 $i を使って値を変えながら処理できる ✅ $i++ で 1 ずつ増やせる ✅ 初期値・条件を変えて回数を調整できる

    → ドリルへ

1 / 7
📜 スライドを全部一気に読む(縦表示)

Lesson 3 / Chapter 1


同じ処理を何回も書くのは大変

<?php
echo "1\n";
echo "2\n";
echo "3\n";
echo "4\n";
echo "5\n";
  • 5 回ならまだ書ける
  • 100 回なら? 1000 回なら?
  • ループ を使えば 1 回書くだけで済む

for 文の形

<?php
for ($i = 1; $i <= 5; $i++) {
    echo $i . "\n";
}

実行結果:

1
2
3
4
5
  • for (初期化; 条件; 更新) { 処理 }
  • 条件が真の間、{ } の中を繰り返す

3 つの部分を分解する

for ($i = 1; $i <= 5; $i++) {
    echo $i . "\n";
}
部分 役割 実行タイミング
$i = 1 初期化 ループ開始時に 1 回だけ
$i <= 5 条件 毎回チェック (真なら続行)
$i++ 更新 1 回処理した後に実行

$i++ は「1 増やす」

<?php
$i = 0;
$i++;       // $i = 1
$i++;       // $i = 2
echo $i;    // 2
  • $i++$i = $i + 1 と同じ
  • ループのカウンタを進めるためによく使う
  • $i-- なら 1 減らす

0 から始める書き方もある

<?php
for ($i = 0; $i < 5; $i++) {
    echo $i . "\n";   // 0 1 2 3 4
}
  • $i = 0 開始 + $i < 5 条件 → 0 から 4 まで 5 回
  • $i = 1 開始 + $i <= 5 条件 → 1 から 5 まで 5 回
  • どちらも 5 回繰り返すが、出る値が違うので問題に合わせる

このチャプターでできるようになること

for 文で決まった回数だけ処理を繰り返せる ✅ カウンタ変数 $i を使って値を変えながら処理できる ✅ $i++ で 1 ずつ増やせる ✅ 初期値・条件を変えて回数を調整できる

→ ドリルへ

この章で取り組む 演習問題の流れ (3ステップ)
  1. 01 ドリル 01 — 1 から 5 までを出力 README.md starter.php answer.php
  2. 02 ドリル 02 — 1 から N までの合計 README.md starter.php answer.php
  3. 03 ドリル 03 — N の段の九九 README.md starter.php answer.php

演習問題の詳細

この章の演習問題の内容を読めます。実際に手元で解くには教材リポジトリを clone してください。

ドリル 01 — 1 から 5 までを出力

問題

for 文を使って 1 から 5 までを 1 行ずつ出力してください。

期待される出力:

1
2
3
4
5

ヒント

  • for ($i = 1; $i <= 5; $i++) でループする
  • echo $i . "\n"; で 1 行ずつ出力

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

ドリル 02 — 1 から N までの合計

問題

標準入力で整数 N を 1 行受け取り、1 + 2 + ... + N の合計を出力してください。

入力例:

10

期待される出力:

55

ヒント

  • $n = (int) trim(fgets(STDIN)); で N を読む
  • $sum = 0; で合計用の変数を用意
  • for ($i = 1; $i <= $n; $i++) { $sum += $i; } で足していく
  • $sum += $i$sum = $sum + $i と同じ

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

ドリル 03 — N の段の九九

問題

標準入力で整数 N (1〜9) を 1 行受け取り、N の段の九九を 1 行ずつ出力してください。

出力形式は N x i = 結果 の形 (空白区切り)。

入力例:

3

期待される出力:

3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
3 x 4 = 12
3 x 5 = 15
3 x 6 = 18
3 x 7 = 21
3 x 8 = 24
3 x 9 = 27

ヒント

  • $n = (int) trim(fgets(STDIN)); で N を読む
  • for ($i = 1; $i <= 9; $i++) で 1 から 9 まで回す
  • echo "$n x $i = " . ($n * $i) . "\n"; のように出力

🧪 ブラウザで試す

スライドのコードを写経して ▶ 実行、自分で書いて 📝 採点 で答え合わせ。初回のみ PHP ランタイム読込で数秒かかります。

PHP ランタイム未読込

          

        

演習問題(3問)

  1. ドリル 01 — 1 から 5 までを出力

    README.md starter.php answer.php

  2. ドリル 02 — 1 から N までの合計

    README.md starter.php answer.php

  3. ドリル 03 — N の段の九九

    README.md starter.php answer.php

サイト内で問題文・雛形・解答例を確認できます。実際に手元で解くには教材リポジトリを clone してください。

完了にすると進捗に反映されます