第9章 条件で処理を変える

9.3 if文を使ってみよう

条件分岐文の一番基本となるのが、「if(イフ)文」になります。if文には他のパターンがあり状況によって使い分ける必要がありますが、まずは条件分岐文の基本となる、if文について学習していきましょう。

9.3.1 if文の使い方

if文は指定した条件式を満たす場合に、「{ }(波括弧)」内の処理を実行します。
プログラム内では「{ }」で囲まれた範囲を「ブロック」と呼び、ひとまとまりの処理を示すために使われます。

書式:if文

if文の条件式の判定結果は必ず「trueかfalseの真偽値」になり、if文では条件を満たして(true)ならば、ifブロック内の処理を行う仕組みになっています。if文の処理の流れをフローチャートで表すと以下の図9.3.1になります。


図 9.3.1 : if文のフローチャート

ポイント
  • ある条件が成立する時だけ処理を実行させたい場合、if文で実現できる。
  • if文の条件式を判定した結果は、必ずtrueかfalseのどちらかの真偽値になる。

if文の条件式には「比較演算子」を使うことで、様々な条件を設定することができます。比較演算子の種類については次の項で詳しく紹介していきますので、まずは条件式で最もよく使われる「等しい(同じ)」かどうかを判定するプログラムを確認してみましょう。

if文を利用して条件に応じた処理を行わせるプログラム

if文を利用して変数の値同士が条件を満たす場合と満たさない場合で、条件分岐が正しく行われることをWebブラウザにメッセージを表示して確認してみましょう。

ソース・フォルダー: myproj_intro/ch09
パッケージ: ifStatement1.php
アクセスURL:http://localhost/myproj_intro/ch09/ifStatement1.php

ifStatement1.php

実行結果

解説

今回のプログラムのフローチャートを以下の図9.3.2に示します。図の点線ラインがこのプログラムの処理の実行ルートになります。
ポイントとして、1つ目のif文では条件式を満たしてメッセージを出力しますが、2つ目のif文では条件式を満たせずメッセージを出力しない所です。


図 9.3.2 : ifStatement1のフローチャート

7、8行目で今回条件分岐の比較に使う変数を、2つ同じ値「10」で用意しています。10、11行目は1回目の比較の前に、変数の値を確認するために画面に表示を行っています。実行結果から分かるように$num1=10、$num2=10が画面に表示されます。

14~16行目が条件分岐の判定を行う、1つ目のifブロックになっています。
14行目のifの括弧の中に記述された「$num1 == $num2」が条件式になり$num1と$num2の値が等しいのかを判定しています。プログラムで「等しい」かどうかを判定するための比較演算子は「==(半角イコール2つ)」を利用します。※イコール1つだと代入演算子になってしまうので注意が必要です。
14行目の処理にきた時、$num1=10、$num2=10と値が同じため、条件式「$num1 == $num2」が満たされます。結果ifブロック内の15行目のメッセージを出力する処理が実行され、画面に「◆変数$num1と$num2の値は等しいです。」と表示されます。


図 9.3.3: 1つ目のifブロックのフローチャート

19行目で変数$num2の値を10から「9」へ変更しています。21、22行目で変更後の変数の値を確認するために、もう1度2つの変数の値を画面に表示させます。実行結果から分かるように$num1=10、$num2=9が画面に表示されます。

25~27行目が2つ目のif文になりますが、処理内容は1つ目のif文と同じものになっています。
25行目の処理に来た時、今回は$num1=10、$num2=9(19行目の処理で変更)になっているため、条件式「$num1 == $num2」が満たされません。結果ifブロック内の処理は行われないことになります。


図 9.3.4: 2つ目のifブロックのフローチャート

今回は同じなのかを判定する比較演算子「==」を利用しました。条件式に利用できる比較演算子には他にも種類があります。次項でその種類について説明を行っていきます。

9.3.2 条件式に使える比較演算子

前項で目にした比較演算子とは「左辺と右辺の値を比較する」演算子になっています。条件式に使える代表的な比較演算子の一覧を以下の表に示します。

表 9.3.1:代表的な比較演算子の一覧

上記の比較演算子は2つの値を比較した結果、その条件を満たせば「真:true」を、満たさなければ「偽:false」を返すという動作を行います。この動作の性質を利用してif文などの条件判定を行うことができます。

比較演算子の判定結果を表示してみる

比較演算子はそれ単体で使用することはありませんが、本当に真偽値(true/false)を返す動作を行っているのか確認するためにはvar_dump関数を利用します。

変数$varには10が格納されていて、1つ目の判定は$varと10が等しい条件を満たすので「true」、2つ目の判定は$varが11以上という条件を満たせないので「false」になります。var_dumpの結果も同じになっているのが確認できます。
このように比較演算子の返す真偽値を使って、条件分岐文などの制御構文は動作することになります。

条件分岐文の条件式には、ほとんどの場合比較演算子を利用することになります。たくさんあって1度には覚えきれないでしょうが、使いながら徐々に覚えていけば大丈夫です。さまざまな比較演算子を使った条件分岐文を学んでいきましょう。

NEXT>> 9.4 if-else文を使ってみよう