【PHP】レッスン2-02:if文による分岐処理を理解しよう

記事内に商品プロモーションを含む場合があります

この記事で学べる知識:if文による分岐処理

この記事の練習問題を解くために必要な知識:
比較演算子と論理演算子if文による分岐処理条件演算子switch文による分岐処理for文による繰り返し処理while文による繰り返し処理繰り返しの制御エラーメッセージ例外処理

<<前のページ PHP記事一覧 次のページ>>

PHPの「if文による分岐処理」とは

この章ではPHPにおける「if文による分岐処理」の意味や使い方を学習します。用語の解説が不要な方はここをクリックして練習問題へ飛びましょう。




プログラミングでは「条件に応じて異なる処理を行う」ことがよくあります。

このような場合に使われるのが「if文」です。PHPでもif文を用いることで条件分岐の処理を簡単に記述できます。

ここでは、PHPにおけるif文の基本的な使い方を解説します。

if文とは?

if文は「もし条件が成立したら、指定した処理を実行する」という仕組みを提供する制御構文です。

例えば「ユーザーの年齢が18歳以上の場合は特定のメッセージを表示する」というような条件付きの処理を実現できます。

条件が満たされない場合には何も処理を行わない、または別の処理を記述することも可能です。

if文の基本構文

PHPにおけるif文の基本構文は次の通りです:

if (条件式) {
    // 条件式が真(true)の場合に実行される処理
}

以下は具体例です:

$age = 20;

if ($age >= 18) {
    echo "あなたは成人です。";
}

この例では変数 $age が18以上であれば、「あなたは成人です。」というメッセージが表示されます。

else文とelse if文

if文には条件が満たされなかった場合に実行する処理を指定できる else文 と、複数の条件を判定するための else if文 があります。

else文の構文: 

if (条件式) {
    // 条件式が真の場合
} else {
    // 条件式が偽(false)の場合
}

else if文の構文: 

if (条件式1) {
    // 条件式1が真の場合
} else if (条件式2) {
    // 条件式2が真の場合
} else {
    // どちらの条件も偽の場合
}

使用例は以下の通りです。

$score = 75;

if ($score >= 90) {
    echo "優秀です!";
} else if ($score >= 60) {
    echo "合格です!";
} else {
    echo "残念ながら不合格です。";
}

この例では、スコアが90以上なら「優秀です!」、60以上なら「合格です!」、それ以外なら「残念ながら不合格です。」と表示されます。

if文の使用例

もう一つ、if文を実際に使用する具体的な例を紹介します。

例:ユーザーの入力に基づいてメッセージを表示 

echo "あなたの年齢を入力してください: ";
$age = (int)fgets(STDIN);

if ($age < 13) {
    echo "あなたは子供です。";
} else if ($age < 20) {
    echo "あなたはティーンエイジャーです。";
} else {
    echo "あなたは大人です。";
}
  • ユーザーに年齢を入力させ、その値を $age に代入します。
  • 入力された値に応じて「子供」「ティーンエイジャー」「大人」とメッセージを表示します。

まとめ

if文は条件に応じた処理を行うための基本的な仕組みです。

else文やelse if文を組み合わせることで、複雑な条件分岐を実現できます。

PHPでのプログラミングにおいて頻繁に使われる構文なので、しっかり理解しておきましょう!

if文による分岐処理の練習問題:条件に基づいて動的な出力を試そう

このプログラムではランダムに生成された数値を元に条件分岐処理を行います。

数値が30以下、31~70、71以上の3つの範囲に分け、それぞれ異なるメッセージを出力するコードを作成してください。

条件分岐の仕組みを理解し、数値に応じた出力を試しましょう。

この問題の要件

以下の要件に従ってコードを完成させてください。

  1. ランダムな数値を生成すること (範囲は1から100)。
  2. 生成された数値を画面に表示すること。
  3. 数値が以下の条件を満たす場合、それぞれ対応するメッセージを表示すること:
    • 数値が30以下の場合: 「数値は30以下です。」
    • 数値が31以上70以下の場合: 「数値は31以上70以下です。」
    • 数値が71以上の場合: 「数値は71以上です。」
  4. プログラム終了時に「プログラム終了。」と表示すること。

ただし、以下のような実行結果となるコードを書くこと。

*****↓↓正解コードの実行結果の例↓↓*****

生成された数値は: 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文: 条件に応じて異なる処理を実行するための構文です。

  1. if ($randomNumber <= 30): randomNumberが30以下の場合に「数値は30以下です。」を表示します。
  2. elseif ($randomNumber <= 70): 30より大きく、70以下の場合に「数値は31以上70以下です。」を表示します。
  3. else: 上記のどちらでもない場合、つまり71以上の場合に「数値は71以上です。」を表示します。

プログラム終了メッセージ

echo "プログラム終了。" . PHP_EOL;

最後にプログラムが正常に終了したことを知らせるメッセージを表示します。

まとめ

このプログラムでは乱数を生成し、if文を使用して条件ごとに異なるメッセージを出力する方法を学びました。

if文による分岐処理は、プログラムに意思決定を追加する重要な基礎文法です。このコードを通じて以下のポイントを確認できます:

  1. 乱数の生成方法。
  2. if文を使った条件分岐の構造。
  3. echoを用いた結果の出力。

次はより複雑な条件に挑戦してみましょう。理解を深めるため、if文を使ったさまざまなシナリオを試してみることをお勧めします!

<<前のページ PHP記事一覧 次のページ>>

この記事への質問・コメント

この記事を作成するにあたりAIを活用しています。

問題ないことは確認していますが、もし間違いや表現の違和感などありましたら、ご指摘頂けると大変助かります。






    PHPのテキスト&問題集トップへ戻る
    トップページへ戻る