MENU

【PHP】Lesson2-2:条件分岐をマスターしよう|if文の基本と使い方

tggaa478@yahoo.co.jp

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

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

ここでは、PHPにおける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:クラス

<<前のページ

学習記事一覧

次のページ>>

if文とは?|PHPで条件付き処理を書く基本

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

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

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

基本構文を学ぼう|PHPの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文まとめ|条件分岐の理解を深めようまとめ

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からコードを組み立てることが難しい場合は、以下のヒントを開いて参考にしましょう。

Q
ヒント1【コードの構成を見る】

正解のコードは上から順に以下のような構成となっています。
(※下記の□はコード内のインデントを表しています)

1:1から100までの間の乱数を生成し、変数$randomNumberに代入
2:「生成された数値は:」と変数$randomNumberを出力して改行
3:if文で変数$randomNumberが30以下か判定
  □ 真の場合、「結果: 数値は30以下です。」と出力して改行
4:else if文で変数$randomNumberが70以下か判定
  □ 真の場合、「結果: 数値は31以上70以下です。」と出力して改行
5:else文
  □ 「結果: 数値は71以上です。」と出力して改行
6:「プログラム終了。」と出力して改行

Q
ヒント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;

このヒントを見てもまだ回答を導き出すのが難しいと感じる場合は、先に正解のコードと解説を見て内容を理解するようにしましょう。

演習問題の答え合わせ

この問題の正解コードとその解説は以下の通りです。

クリックして開いて確認してください。

Q
正解コード
<?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;
Q
正解コードの解説

コードをブロックごとに分割して解説します。

乱数の生成と表示

$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学習サイトにするため、ぜひ 問い合わせフォーム からご意見下さい。

<<前のページ

学習記事一覧

次のページ>>

記事URLをコピーしました