ch01 6章中 1章目

ch01 — if 単独

スライドで見る

この章を AI と学ぶ

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

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

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

    ChatGPT Claude Gemini

概要

プログラムは「常に同じ処理」だけでは現実の要件に追いつかない。年齢で表示を変える、点数で合否を分ける、入力が空かどうかで処理を切り替える — こうした「条件によって動きを変えたい」というのが、ほぼあらゆる業務ロジックに登場する根本的な要求で、その最も基本的な道具が if 文だ。

PHP の ifif (条件) { ... } という形で書く。波括弧 {} の中に書いたコードは、条件が真のときだけ 実行される。条件部分には比較演算子を使った式 ($age >= 18 など) を書くのが一般的だが、PHP は「真偽値に評価できるものなら何でも」条件にできる柔軟さがある。

ここで知っておくべき重要なクセが、PHP の falsy (偽として扱われる値) の範囲が広い こと。false だけでなく、0 / "0" / "" (空文字) / null / [] (空配列) すべてが if の条件として書くと「偽」になる。これは便利な反面、「$count = 0 のときに if ($count) が想定と逆に動く」というハマり方をしやすい。この章ではまず素直な「真のときだけ実行」を体に入れ、後の ch03-comparison で比較式の評価を、ch04-logical で複合条件を扱えるようにする。

学習目標

  • if (条件) { ... } の書き方を言える
  • 条件が真のときだけブロックの中身が実行されると理解する
  • 条件式に比較演算子を使える

ドリル

no 内容
01 入力が正の数なら「正の数」と出力
02 入力点数が 60 以上なら「合格」と出力
03 入力時刻が 12 未満なら「午前」と出力

解説スライド 全 6 枚

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

  1. if 単独

    Lesson 2 / Chapter 1

  2. if は「もし〜なら」

    <?php
    $score = 80;
    
    if ($score >= 60) {
        echo "合格\n";
    }
    • if (条件) のあとに { ... } を書く
    • 条件が 真 (true) のときだけ { ... } の中身が実行される
    • 条件が 偽 (false) のときは中身を飛ばす
  3. 書き方のルール

    if ($score >= 60) {
        echo "合格\n";
    }
    • 条件は ( ) で囲む
    • 処理は { } で囲む
    • 中の行は 半角スペース 4 つ インデントする
    • } のあとに ;付けない
  4. 条件式には比較演算子を使う

    <?php
    $n = 5;
    
    if ($n > 0) {
        echo "正の数\n";
    }
    • > 大なり
    • >= 以上
    • == 等しい
    • 比較の結果は 真 / 偽 のどちらか
    • 比較演算子の詳細は ch03 で扱う
  5. 条件が偽なら何も起きない

    <?php
    $score = 40;
    
    if ($score >= 60) {
        echo "合格\n";
    }
    
    echo "終了\n";

    実行結果:

    終了
    • 40 >= 60 は偽なので { ... } は飛ばす
    • if に書いた echo "終了\n" は実行される
  6. このチャプターでできるようになること

    if (条件) { ... } の形を書ける ✅ 条件が真のときだけブロックが実行されると分かる ✅ 比較演算子 (>, >=, ==) を条件に書ける

    → ドリルへ

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

Lesson 2 / Chapter 1


if は「もし〜なら」

<?php
$score = 80;

if ($score >= 60) {
    echo "合格\n";
}
  • if (条件) のあとに { ... } を書く
  • 条件が 真 (true) のときだけ { ... } の中身が実行される
  • 条件が 偽 (false) のときは中身を飛ばす

書き方のルール

if ($score >= 60) {
    echo "合格\n";
}
  • 条件は ( ) で囲む
  • 処理は { } で囲む
  • 中の行は 半角スペース 4 つ インデントする
  • } のあとに ;付けない

条件式には比較演算子を使う

<?php
$n = 5;

if ($n > 0) {
    echo "正の数\n";
}
  • > 大なり
  • >= 以上
  • == 等しい
  • 比較の結果は 真 / 偽 のどちらか
  • 比較演算子の詳細は ch03 で扱う

条件が偽なら何も起きない

<?php
$score = 40;

if ($score >= 60) {
    echo "合格\n";
}

echo "終了\n";

実行結果:

終了
  • 40 >= 60 は偽なので { ... } は飛ばす
  • if に書いた echo "終了\n" は実行される

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

if (条件) { ... } の形を書ける ✅ 条件が真のときだけブロックが実行されると分かる ✅ 比較演算子 (>, >=, ==) を条件に書ける

→ ドリルへ

この章で取り組む 演習問題の流れ (3ステップ)
  1. 01 ドリル 01 — 正の数なら出力 README.md starter.php answer.php
  2. 02 ドリル 02 — 60 点以上なら合格 README.md starter.php answer.php
  3. 03 ドリル 03 — 12 時より前なら午前 README.md starter.php answer.php

演習問題の詳細

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

ドリル 01 — 正の数なら出力

問題

標準入力で整数を 1 つ受け取り、その数が 正 (0 より大きい) なら 正の数 と出力してください。 0 や負の数のときは 何も出力しない

入力例:

5

期待される出力:

正の数

ヒント

  • $n = (int) trim(fgets(STDIN)); で 1 行を整数として読む
  • if ($n > 0) { ... } で正かどうかを判定
  • 出力末尾に \n を入れる

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

ドリル 02 — 60 点以上なら合格

問題

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

入力例:

75

期待される出力:

合格

ヒント

  • $score = (int) trim(fgets(STDIN)); で点数を読む
  • 「以上」は >=
  • 出力末尾に \n を入れる

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

ドリル 03 — 12 時より前なら午前

問題

標準入力で時刻 (0〜23 の整数) を 1 つ受け取り、12 未満 なら 午前 と出力してください。 12 以上のときは 何も出力しない

入力例:

9

期待される出力:

午前

ヒント

  • $hour = (int) trim(fgets(STDIN)); で時刻を読む
  • 「未満」は <
  • 出力末尾に \n を入れる

🧪 ブラウザで試す

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

PHP ランタイム未読込

          

        

演習問題(3問)

  1. ドリル 01 — 正の数なら出力

    README.md starter.php answer.php

  2. ドリル 02 — 60 点以上なら合格

    README.md starter.php answer.php

  3. ドリル 03 — 12 時より前なら午前

    README.md starter.php answer.php

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

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