【PHP】Lesson2-2:if文による分岐処理を理解しよう

一つ前のレッスンでは 比較演算子と論理演算子 について学習しました。
今回は if文による分岐処理 について見ていきましょう。
Lesson1:基礎文法編
Lesson2:制御構造編
・Lesson2-1:比較演算子と論理演算子
・Lesson2-2:if文による分岐処理を理解しよう ◁今回はココ
・Lesson2-3:三項演算子を使いこなそう
・Lesson2-4:switch文による分岐処理を理解しよう
・Lesson2-5:for文による繰り返し処理を理解しよう
・Lesson2-6:while文による繰り返し処理を理解しよう
・Lesson2-7:繰り返しを制御しよう
・Lesson2-8:エラーメッセージを読めるようになろう
・Lesson2-9:例外処理を理解しよう
・確認問題2-1:ハイアンドロー ゲームを作ろう
・確認問題2-2:数字当てゲームを作ろう
・確認問題2-3:シンプルなじゃんけんゲームを作ろう
Lesson3:関数編
Lesson4:データ構造編
Lesson5:クラス編
PHP if文とelse文による分岐処理の基本と使い方
PHPでプログラムの流れをコントロールする「if文」の基本を、初心者向けにわかりやすく解説します。
if文を正しく使えるようになることで、条件によって動きを変える実践的なプログラムが書けるようになります。
ぜひ記事を最後まで読んで、PHPの分岐処理を自分のものにしましょう!

if文による条件分岐とは?|基本構文とコード例で解説
if文 は「もし条件が成立したら、指定した処理を実行する」という仕組みを提供する制御構文です。
例えば「ユーザーの年齢が18歳以上の場合は特定のメッセージを表示する」というような条件付きの処理を実現できます。
条件が満たされない場合には何も処理を行わない、または別の処理を記述することも可能です。
PHPにおけるif文の基本構文は次の通りです:
if (条件式) {
// 条件式が真(true)の場合に実行される処理
}実際のコードの例も見てみましょう。
$age = 20;
if ($age >= 18) { // もし「変数$ageの値は18よりも大きい」が正しいなら
echo "あなたは成人です。"; // この処理を実行
}この例では変数 $ageが18以上であれば、「あなたは成人です。」というメッセージが表示されます。
もし変数$ageの値が17以下であったら(条件が満たされない場合は)、if文の部分は何も起こらずに先へ進みます。
else文とelse if文の使い方|複数条件の処理を理解しよう
if文には条件が満たされなかった場合に実行する処理を指定できる else文 と、複数の条件を判定するための else if文 があります。
条件が成立しなかった場合の処理を指定するにはelseを使います。
if (条件式) {
// 条件式が真の場合の処理
} else {
// 条件式が偽の場合の処理
}また複数の条件をチェックする場合には、else ifを組み合わせることができます。
if (条件式1) {
// 条件式1が真の場合の処理
} else if (条件式2) {
// 宝剣式1が偽であり、条件式2が真の場合の処理
} else {
// どちらの条件も偽の場合
}else文とelse if文を使用したコードの例を見てみましょう。
以下のコードはテストの点数に応じて表示するメッセージを変更する例です。
$score = 75;
if ($score >= 90) { // もし点数が90点以上なら
echo "優秀です!"; // この処理を実行
} else if ($score >= 60) { // もし90点以上ではなく、60点以上なら
echo "合格です!"; // この処理を実行
} else { // もしどの条件も満たさないなら
echo "残念ながら不合格です。"; // この処理を実行
}この例では、スコアが90以上なら「優秀です!」、60以上なら「合格です!」、それ以外なら「残念ながら不合格です。」と表示されます。
まとめ|if文・else文による分岐処理の基本と使い方ポイント
この記事では、PHPのif文による条件分岐の基本や、else文・else if文を使った複数条件の処理方法について学びました。
プログラムの流れを自在にコントロールし、条件に応じた多様な動作が実装できるようになったはずです。
基礎を身につけた今こそ、さらに応用的な分岐処理や複雑な条件式にもぜひチャレンジしてみましょう!
演習問題|if文で数値に応じたメッセージを出力しよう

このプログラムではランダムに生成された数値を元に条件分岐処理を行います。
数値が30以下、31~70、71以上の3つの範囲に分け、それぞれ異なるメッセージを出力するコードを作成してください。
条件分岐の仕組みを理解し、数値に応じた出力を試しましょう。
この演習の要件
以下の要件に従ってコードを完成させてください。
- ランダムな数値を生成すること (範囲は1から100)。
- 生成された数値を画面に表示すること。
- 数値が以下の条件を満たす場合、それぞれ対応するメッセージを表示すること:
- 数値が30以下の場合: 「数値は30以下です。」
- 数値が31以上70以下の場合: 「数値は31以上70以下です。」
- 数値が71以上の場合: 「数値は71以上です。」
- プログラム終了時に「プログラム終了。」と表示すること。
ただし、以下のような実行結果となること。
生成された数値は: 25 結果: 数値は30以下です。 プログラム終了。
解き方のヒント
1からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。
- ヒント1【コードの構成を見る】
-
正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)1:1から100までの間の乱数を生成し、変数$randomNumberに代入
2:「生成された数値は:」と変数$randomNumberを出力して改行
3:if文で変数$randomNumberが30以下か判定
□ 真の場合、「結果: 数値は30以下です。」と出力して改行
4:else if文で変数$randomNumberが70以下か判定
□ 真の場合、「結果: 数値は31以上70以下です。」と出力して改行
5:else文
□ 「結果: 数値は71以上です。」と出力して改行
6:「プログラム終了。」と出力して改行
- ヒント2【穴埋め問題にする】
-
以下のコードをコピーし、コメントに従ってコードを完成させて下さい。
<?php // 数値をランダムに生成し、その値に基づいて結果を表示するプログラム // 乱数を生成 (1~100の範囲) $randomNumber = mt_rand(1, 100); // 生成された乱数を表示 echo "生成された数値は: " . $randomNumber . PHP_EOL; // 条件分岐で乱数の範囲を判定 /*【穴埋め問題1】 ここでif文を使い、$randomNumberが30以下か判定し、その場合は「数値は30以下です」と表示するコードを書いてください。 */ /*【穴埋め問題2】 ここでelseif文を使い、$randomNumberが31以上70以下か判定し、その場合は「数値は31以上70以下です」と表示するコードを書いてください。 */ /*【穴埋め問題3】 ここでelse文を使い、$randomNumberが71以上の場合は「数値は71以上です」と表示するコードを書いてください。 */ // プログラム終了メッセージ echo "プログラム終了。" . PHP_EOL;
このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。
演習問題の答え合わせ
この問題の正解コードとその解説は以下の通りです。
クリックして開いて確認してください。
- 正解コード
-
<?php // 数値をランダムに生成し、その値に基づいて結果を表示するプログラム // 乱数を生成 (1~100の範囲) $randomNumber = mt_rand(1, 100); // 生成された乱数を表示 echo "生成された数値は: " . $randomNumber . PHP_EOL; // 条件分岐で乱数の範囲を判定 if ($randomNumber <= 30) { // 数値が1~30の範囲 echo "結果: 数値は30以下です。" . PHP_EOL; } elseif ($randomNumber <= 70) { // 数値が31~70の範囲 echo "結果: 数値は31以上70以下です。" . PHP_EOL; } else { // 数値が71以上の範囲 echo "結果: 数値は71以上です。" . PHP_EOL; } // プログラム終了メッセージ echo "プログラム終了。" . PHP_EOL;
- 正解コードの解説
-
コードをブロックごとに分割して解説します。
乱数の生成と表示
$randomNumber = mt_rand(1, 100); echo "生成された数値は: " . $randomNumber . PHP_EOL;
- mt_rand(1, 100): 1から100の範囲で乱数(ランダムな数値)を生成します。
mt_rand関数は高速で高品質な乱数を生成するPHPの組み込み関数です。 - $randomNumber: 乱数の結果を格納する変数です。変数はデータを一時的に保存するための箱のようなものです。
- echo: 文字列や変数の値を画面に出力するための命令です。
- PHP_EOL: 改行を表します。異なるOS環境でも適切に動作するよう設計されています。
条件分岐の構造(if文)
if ($randomNumber <= 30) { echo "結果: 数値は30以下です。" . PHP_EOL; } elseif ($randomNumber <= 70) { echo "結果: 数値は31以上70以下です。" . PHP_EOL; } else { echo "結果: 数値は71以上です。" . PHP_EOL; }if文: 条件に応じて異なる処理を実行するための構文です。
- if ($randomNumber <= 30):
randomNumberが30以下の場合に「数値は30以下です。」を表示します。 - elseif ($randomNumber <= 70): 30より大きく、70以下の場合に「数値は31以上70以下です。」を表示します。
- else: 上記のどちらでもない場合、つまり71以上の場合に「数値は71以上です。」を表示します。
プログラム終了メッセージ
echo "プログラム終了。" . PHP_EOL;
最後にプログラムが正常に終了したことを知らせるメッセージを表示します。
- mt_rand(1, 100): 1から100の範囲で乱数(ランダムな数値)を生成します。



