PHP基礎編4:条件分岐処理の「if文」を覚えるだけでプログラミングの幅が広がる

PHP入門
CANIT先生
CANIT先生

今回の講義では、PHPのif文を学んでいきましょう

牛山くん
牛山くん

キャニット先生、if文ってなんですか?

if文条件分岐とも呼ばれていて「◯◯だったら■■して、◯◯ではなかったら▲▲する」と処理をするプログラムです。

猫田さん
猫田さん

もしかして、英語の授業で習った「if」の意味と同じ?

CANIT先生
CANIT先生

そうですね。英語の授業でifを「もしも〜だったら〜」と習ったと思います。その考えで問題ないですよ

If文はPHPに限らず、最も使用するプログラム処理かもしれません。

PCPの学習:if文の書き方

パソコン
CANIT先生
CANIT先生

では、さっそくif文の書き方を説明します

これがif文の書き方です。

猫田さん
猫田さん

なんかわかりにくいなぁ

CANIT先生
CANIT先生

if文は具体例を知れば、けっこうシンプルですよ。猫田さんにもわかりやすいように具体例を交えて解説しますね

if文の基本的なプログラミング方法

パソコン

if文を成立させるためには、条件を決めなければなりません。そして、その条件に当てはまっているかどうか……それを判断します。

たとえば、下の条件のif文を作成するとしましょう。

  • 「国語」、「数学」、「英語」の3科目の点数を入力
  • 点数が80点以上の科目は「合格」と表記する
CANIT先生
CANIT先生

この場合の条件は、何になるかわかりますか?

牛山くん
牛山くん

あんまり自信ないけれど、『点数が80点以上』が条件……かなぁ

CANIT先生
CANIT先生

正解です! 牛山君はもっと自信を持っていいですよ

猫田さん
猫田さん

そうだよ。 もっと自信を持とう!

さて、この条件でプログラミングをしていくと下記の画像のようになります。

条件となるのが「各科目が80点以上」です。条件をクリアしたときは「合格」と表記するので、if文の条件式としてはこうなります。

$変数名 >= 合格点数

条件式の間にある「>=」は、比較演算子と呼ばれるものでif文を使用する際に多用されます。

こちらについては後述で詳しく紹介しますので、覚えておいてください。

今回の条件は「80点以上」となっていたので、数学と英語は条件を満たしているために文章が表示されましたが、国語は条件を満たしていないので表示されませんでした。

このようにif文では、「条件を満たした場合のみ」処理が実行される仕組みになっています。

「真」と「偽」の意味

女性プログラマー

PHPに限らず、プログラミングにおいては「真=True」、「偽=False」と使うことがよくあります。

牛山くん
牛山くん

「真」と「偽」とは、どのような意味ですか?

CANIT先生
CANIT先生

簡単に言えば「条件に一致しているか否か」です。条件に一致していれば「真」、条件と異なれば「偽」ですね

「偽」の場合にも処理を実行したい場合は?

真と偽の違いについて理解したところで、「偽の場合に処理を追加するとき」はどうするのか紹介していきましょう。

たとえば、上記の例に照らし合わせると「80点以上は合格」ですが、言い換えれば「80点未満は不合格」です。そのため、新たな条件として「不合格の場合は「不合格」と表示させる」というプログラミングをしましょう。

偽の場合の処理をする場合は「else」という命令を使用します。

CANIT先生
CANIT先生

この「else」が「条件が真では無かった場合」を意味しています

今回のケースでは、80点未満だった国語にelseの処理を実行します。

このようにif文では、条件に一致した処理の他に条件に一致しなかった処理を実行させることも出来ます。

複数の条件で分岐させたいときの処理

続いて、「複数の条件で分岐させたいときの処理」を紹介します。

少し条件を変更します。 ここまででは「80点以上だと合格、以下だと不合格」でしたが、「70点以下だと不合格、90点以上だと合格、71点~89点は「もう少し頑張りましょう」と表記する」という処理に変更とします。

牛山くん
牛山くん

選択肢が2つから3つに変わったんですね

このように、If文で複数の条件分岐の処理をする際には「else if」を使用します。

このelse ifを使用することで複数の条件でIf文を使用することが出来ます。

ポイントは、「2つ目の条件でIf文を再定義する」というような考え方で問題ありません。

処理の流れは、始めのIf文で条件を満たさなかった場合に2つ目のelse ifで定められた条件での判定を行い、その条件に一致すればelse ifの中の処理を行います。

さらにelse ifの中の処理にも該当しなかった場合はelseの処理が実行されるという流れです。

if文を学ぶなら「比較演算子」を知ろう

プログラマー
CANIT先生
CANIT先生

さて、ここまでにも少しだけ触れましたが、if文を使用する場合は「比較演算子」を学ばなければなりません

猫田さん
猫田さん

比較演算子……なんか難しそうだなぁ

CANIT先生
CANIT先生

そんなことないですよ。名前こそ大袈裟ですが、「>」や「<=」のような記号のことです。よく使う比較演算子を簡単にまとめておきますね

  • >(大なり(意味:◯◯よりも大きい))
  • >=(大なりイコール(意味:◯◯以上))
  • <(小なり(意味:◯◯未満))
  • <=(小なりイコール(意味:◯◯以下))
  • ==(等価(意味:◯◯と等しい))
  • !=(等価の否定(意味:◯◯と等しくない))
  • ===(厳密な等価(意味:型式も数値も◯◯と等しい))

この7パターンを使って左辺と右辺を比較するのがif文の基本です。

少し特殊なのが7番目の「===(厳密な等価)」です。

牛山くん
牛山くん

これは見たことないですね

これは、型式も数値も一致していないと「True(真)」とならない比較演算子です。

簡単な具体例を紹介しますね。数字の「7」と文字列の「7」は見た目が同じですが、プログラムでは厳密に言えば異なる値となります。 「===」を使用していると正確な判断が可能になり、実践の場でエラーを回避できるケースも少なくありません。

実際にif文を書いてみよう

学習
CANIT先生
CANIT先生

では、ここまでの学習内容を踏まえた練習問題です

猫田さん
猫田さん

テストだ。テストだ

今回はif文なので、予めいくつかの条件を定めます。変数名や何をするための処理なのかとコメントアウトしたい方は好きにしてください。

テストプログラミング内容

条件については下記のとおりとします。

  • 時速70キロメートルで走る自動車があります
  • 時速60キロメートル以下の場合は「速度が遅いです」と表示させます
  • 時速80キロメートル以上の場合は「速度が超過しています」と表示させます
  • 速度が60キロメートルを超えて80キロメートル未満の場合は「適正速度です」と表示させます

こちらの条件でif文を作ってください。 正解は下記の画像となります。

猫田さん
猫田さん

がんばるぞー

テストの答え合わせ

CANIT先生
CANIT先生

はい。では、答え合わせです

このようなプログラムが書けていれば正解です。

今回は速度が70キロメートルなので「適正速度です」と表示されましたが、この最初に設定した速度を変えることによって表示される文章が切り替われば問題ありません

if文は様々なシーンで使用するプログラミングとなっていますが、ちゃんと頭の中でどのような処理をさせたいのか理解しないと、思っていたような結果にならないこともあるので気をつけてください。

PHPの学習:「if文」まとめ

無料のプログラミングスクール
CANIT先生
CANIT先生

というわけで、今回はPHPのプログラミングの中でも使用頻度の高い「if文」を学びました。二人ともどうでしたか?

猫田さん
猫田さん

条件分離処理とか、比較演算子とか、難しい言葉が出てきたときはどうしようかと思いました

牛山くん
牛山くん

実際は、そんなに難しくなかったと思いますよ

猫田さん
猫田さん

そうなのよ! わざと難しいぽい名前をつけるのは、よくないと思うなぁ

名前の件はさておき、条件分岐のプログラミングは、どのようなプログラミング言語でも使用頻度が高くなっています。しかし、正しく工程をイメージしないと間違った処理をしてしまうので、注意してください。 次回はif文と同じくらいに使用頻度の高い「for文」について紹介します。

❤内容は役に立ちましたか?皆さまのご意見が励みになります☺
YesNo
無料でスキルを学んでからIT業界に転職

そろそろ本気で将来のことを考えなくちゃ……手に職をつけてIT業界に転職したいなぁ。でも、業界未経験だから、なんか敷居が高そう、と思っている方へ。

これからIT業界への転身を目指すあなたに、無料でスキルアップできて、平均で年収は90万円もアップできるんです。

PHP入門
【この記事を書いた人】
CANIT 先生

あらゆるプログラミング言語をあやつるフリーの凄腕講師。温和な性格で「わかるまで教えます」がモットー。たまに時間ができると動物の仲間達に、プログラミングを教えることもある。現在の生徒は牛山くんと猫田さん。

タイトルとURLをコピーしました