ch02 6章中 2章目

ch02 — if / else

スライドで見る

この章を AI と学ぶ

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

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

概要

if だけだと「条件が真のときの処理」しか書けない。だが現実のロジックの多くは 二者択一 だ。合格か不合格か、有効か無効か、奇数か偶数か、ログイン済みか未ログインか — 「条件を満たさなかったときも別の処理をしたい」場面が圧倒的に多い。これを表現するのが if / else で、else ブロックは「if の条件が偽だったときに必ず通る道」になる。

3 つ以上の分岐が必要になったら elseif を使う。if ... elseif ... elseif ... else上から順に条件を判定し、最初に真になった節だけ を実行する。たとえば点数で A / B / C / D を判定するときは、上から >= 90 >= 80 >= 70 と書いていけば、>= 90 に当てはまった瞬間に下の節は見にいかない。この「上から評価して止まる」性質を理解すると、条件の書く順番が大事だと分かる (>= 70 を一番上に書いてしまうと、満点でも C 判定になってしまう)。

ネストした if を何重にも書くより、elseif で横並びにする方が 読みやすく・バグも減る ので、3 分岐以上はまず elseif を検討するのが基本。さらに分岐数が多くて値の等価比較なら、後で扱う ch05-switch や PHP 8 の match 式の出番だ。この章では if / else の基本形と elseif を体に入れる。

学習目標

  • if / else で 2 分岐できる
  • elseif で 3 分岐以上に分けられる
  • 上から順に条件を判定すると理解する

ドリル

no 内容
01 入力された整数が偶数か奇数かを出力
02 60 以上なら合格、それ以外なら不合格
03 点数で A / B / C / D を判定

解説スライド 全 7 枚

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

  1. if / else

    Lesson 2 / Chapter 2

  2. else は「そうでなければ」

    <?php
    $score = 40;
    
    if ($score >= 60) {
        echo "合格\n";
    } else {
        echo "不合格\n";
    }
    • if の条件が のときに else { ... } の中身が実行される
    • ifelseどちらか一方だけ が必ず実行される
  3. 書き方のルール

    if ($score >= 60) {
        echo "合格\n";
    } else {
        echo "不合格\n";
    }
    • if (...) { ... } else { ... } の形
    • }else同じ行 に並べてよい (慣習)
    • else には条件を書かない (書くのは elseif)
  4. elseif で 3 分岐以上

    <?php
    $score = 75;
    
    if ($score >= 90) {
        echo "A\n";
    } elseif ($score >= 70) {
        echo "B\n";
    } else {
        echo "C\n";
    }

    実行結果:

    B
    • elseif (条件) で条件を増やせる
    • いくつでも並べられる
  5. 上から順に判定する

    if ($score >= 90) {
        // 1番目: 90 以上か?
    } elseif ($score >= 70) {
        // 2番目: 70 以上か? (90 以上は既にはじかれた)
    } else {
        // どれにも当てはまらない
    }
    • 条件は 上から順 にチェックされる
    • 当てはまった瞬間にそのブロックだけ実行して 抜ける
    • だから上から 厳しい順 に並べる
  6. 余りで偶奇判定

    <?php
    $n = 7;
    
    if ($n % 2 == 0) {
        echo "偶数\n";
    } else {
        echo "奇数\n";
    }
    • $n % 2 は 2 で割った余り
    • 余りが 0 なら偶数、そうでなければ奇数
    • == は「等しい」(ch03 で詳しく)
  7. このチャプターでできるようになること

    if / else で 2 分岐できる ✅ elseif で 3 分岐以上に分けられる ✅ 条件は上から順に判定されると分かる ✅ % と組み合わせて偶奇判定ができる

    → ドリルへ

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

Lesson 2 / Chapter 2


else は「そうでなければ」

<?php
$score = 40;

if ($score >= 60) {
    echo "合格\n";
} else {
    echo "不合格\n";
}
  • if の条件が のときに else { ... } の中身が実行される
  • ifelseどちらか一方だけ が必ず実行される

書き方のルール

if ($score >= 60) {
    echo "合格\n";
} else {
    echo "不合格\n";
}
  • if (...) { ... } else { ... } の形
  • }else同じ行 に並べてよい (慣習)
  • else には条件を書かない (書くのは elseif)

elseif で 3 分岐以上

<?php
$score = 75;

if ($score >= 90) {
    echo "A\n";
} elseif ($score >= 70) {
    echo "B\n";
} else {
    echo "C\n";
}

実行結果:

B
  • elseif (条件) で条件を増やせる
  • いくつでも並べられる

上から順に判定する

if ($score >= 90) {
    // 1番目: 90 以上か?
} elseif ($score >= 70) {
    // 2番目: 70 以上か? (90 以上は既にはじかれた)
} else {
    // どれにも当てはまらない
}
  • 条件は 上から順 にチェックされる
  • 当てはまった瞬間にそのブロックだけ実行して 抜ける
  • だから上から 厳しい順 に並べる

余りで偶奇判定

<?php
$n = 7;

if ($n % 2 == 0) {
    echo "偶数\n";
} else {
    echo "奇数\n";
}
  • $n % 2 は 2 で割った余り
  • 余りが 0 なら偶数、そうでなければ奇数
  • == は「等しい」(ch03 で詳しく)

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

if / else で 2 分岐できる ✅ elseif で 3 分岐以上に分けられる ✅ 条件は上から順に判定されると分かる ✅ % と組み合わせて偶奇判定ができる

→ ドリルへ

この章で取り組む 演習問題の流れ (3ステップ)
  1. 01 ドリル 01 — 偶数か奇数か README.md starter.php answer.php
  2. 02 ドリル 02 — 合格か不合格か README.md starter.php answer.php
  3. 03 ドリル 03 — 点数で評価を判定 README.md starter.php answer.php

演習問題の詳細

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

ドリル 01 — 偶数か奇数か

問題

標準入力で整数を 1 つ受け取り、偶数 なら 偶数奇数 なら 奇数 と出力してください。

入力例:

7

期待される出力:

奇数

ヒント

  • $n = (int) trim(fgets(STDIN)); で読む
  • $n % 2 == 0 なら偶数
  • if / else を使う

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

ドリル 02 — 合格か不合格か

問題

標準入力で点数 (0〜100 の整数) を 1 つ受け取り、60 以上 なら 合格60 未満 なら 不合格 と出力してください。

入力例:

55

期待される出力:

不合格

ヒント

  • $score = (int) trim(fgets(STDIN));
  • if / else で 2 分岐
  • 「以上」は >=

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

ドリル 03 — 点数で評価を判定

問題

標準入力で点数 (0〜100 の整数) を 1 つ受け取り、以下のルールで評価を出力してください。

点数 評価
90 以上 A
80 以上 90 未満 B
70 以上 80 未満 C
それ以外 (70 未満) D

入力例:

85

期待される出力:

B

ヒント

  • $score = (int) trim(fgets(STDIN));
  • if / elseif / elseif / else で 4 分岐
  • 条件は 上から厳しい順 に並べる (まず >= 90 を判定)

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

演習問題(3問)

  1. ドリル 01 — 偶数か奇数か

    README.md starter.php answer.php

  2. ドリル 02 — 合格か不合格か

    README.md starter.php answer.php

  3. ドリル 03 — 点数で評価を判定

    README.md starter.php answer.php

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

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