概要
プログラムは「常に同じ処理」だけでは現実の要件に追いつかない。年齢で表示を変える、点数で合否を分ける、入力が空かどうかで処理を切り替える — こうした「条件によって動きを変えたい」というのが、ほぼあらゆる業務ロジックに登場する根本的な要求で、その最も基本的な道具が if 文だ。
PHP の if は if (条件) { ... } という形で書く。波括弧 {} の中に書いたコードは、条件が真のときだけ 実行される。条件部分には比較演算子を使った式 ($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 未満なら「午前」と出力 |
📝 演習: ドリル 01 — 正の数なら出力
問題
標準入力で整数を 1 つ受け取り、その数が 正 (0 より大きい) なら 正の数 と出力してください。
0 や負の数のときは 何も出力しない。
入力例:
5
期待される出力:
正の数ヒント
$n = (int) trim(fgets(STDIN));で 1 行を整数として読むif ($n > 0) { ... }で正かどうかを判定- 出力末尾に
\nを入れる
📝 演習: ドリル 02 — 60 点以上なら合格
問題
標準入力で点数 (0〜100 の整数) を 1 つ受け取り、60 以上 なら 合格 と出力してください。
60 未満のときは 何も出力しない。
入力例:
75
期待される出力:
合格ヒント
$score = (int) trim(fgets(STDIN));で点数を読む- 「以上」は
>= - 出力末尾に
\nを入れる
📝 演習: ドリル 03 — 12 時より前なら午前
問題
標準入力で時刻 (0〜23 の整数) を 1 つ受け取り、12 未満 なら 午前 と出力してください。
12 以上のときは 何も出力しない。
入力例:
9
期待される出力:
午前ヒント
$hour = (int) trim(fgets(STDIN));で時刻を読む- 「未満」は
< - 出力末尾に
\nを入れる