Pages

Subscribe:

2011-08-25

PHPの基礎~条件分岐(if構文)

今回からPHPの基本的な構文についてのお話になります。

最初は何に使うか分からず、理解できても使い道が見えてこないので
一体何をしているんだろうと悩むこともありますが、
今後複雑なプログラムを扱うための基本になるところなので、
実際に手を動かしてやってみると良いと思います。
できるとだんだん面白くなってきます。

条件分岐

読んで字のごとく、条件分岐はある条件によって、その後の処理が変わることを
言います。
「条件がAだったらこの処理を行う」、「Aでなければ行わない(または別の処理を行う)」
というのが考え方の基本的な部分です。
条件分岐には「if構文」と「switch構文」がありますが、
今回は「if構文」の使い方をまとめます。


if構文(if文)

「if」は「もし…だったら」という意味で使われる英単語ですが、
この構文でも同じような意味で使用されます。
if( 条件式 ){ 条件式がtrueの時実行される処理 }
またtrueが出てきましたが、要は「もし()内の条件式に合っていたら、{}の中身を実行してね」
という意味の文です。

いきなりプログラムが長くなった印象を受けると思いますが、
これまでやってきた「echo」を使った文、変数、演算子をこの構文と組み合わせることで
プログラムを完成させることができます。
ここでは主に比較演算子が登場し、条件式の中に使います。

実際にEclipseでif文を書いてみます。

このif文は「$a」が「5」よりも大きければ「echo $a.’は5よりも大きいです’;」を実行する
という意味になります。
ブラウザで確認すると、if文の実行結果が表示されています。
 
これは現在「$a」に「5」より大きい「10」が代入されているためで、
この「$a」の値を「3」に変えてみると、ブラウザには何も表示されなくなります。

 「$a」が5より大きくなければ「{}」の中の処理は実行されないのです。


「else」を追加する

最初に書いたとおり、条件分岐の基本は
「条件がAだったらこの処理を行う」、「Aでなければ行わない(または別の処理を行う)」
ですが、まだ「(または別の処理を行う)」の部分が実践されていません。

条件分岐は「条件に合わなかった場合の処理」も用意して
ひとつのまとまりとして使われることがほとんどです。
使い方は先ほどのif文のあとに、続けてelseだった場合の処理を書くだけです。
ちなみにelseは「そのほかの」とか「~でなければ」という意味を持つ英単語です。
if( 条件式 ){ 条件式がtrueの時実行される処理 } 
else{ 条件式がfalseの時実行される処理 }
先ほどのif文にelseの処理もくっつけてみます。



elseだったときの処理に「echo $a.’は5よりも小さいです’;」という文を入れてみると
先ほど「$a」の値が「3」だったときに何も表示されないだけだったのに対し、
「3は5よりも小さいです」と表示されるようになり、
「$a」の値に対して2通りの表示ができるようになりました。

プログラムの書き方に関してはこれはもう人それぞれだとは思いますが、
このように書かれることが多いようです。
カッコの閉じが文の始まりとそろっていると読みやすいです。

さらに条件を追加する「elseif」

if~elseでこれまでに比べ、だいぶできることが広がったと思います。
ですが、条件が「~だったとき・そうでないとき」だけでは終わらないこともあります。
そうした場合に使われるのが「elseif」です。
if( 条件式1 ){ 条件式1がtrueの時実行される処理 } 
elseif( 条件式2 ){ 条件式1がfalseで条件式2がtrueの時実行される処理 } 
この「elseif」の便利なところは、条件をどんどん追加していけることです。
ただ、あまりにも条件を分けすぎるとプログラムが複雑になり
自分でも意味が分からなくなってしまったりするようなので、そこはバランスです。

先ほど2通りに分けた文を今度は3通りに分けてみます。


「elseif」を使って3通りの条件分岐を作り、
「$a」が「5」と等しかった場合の文を追加してみました。
この条件分岐に関してはこれでやっとちゃんとしたものと言えそうです。

この場合、最後の「elseif」の部分は「else」にすることもできます。
最終的に何にも当てはまらないときのために「else」で締めくくることが
基本ですが、条件に当てはまらない場合何の処理もしないのであれば
最初のif文だけで終わらせても、いくつかの条件分岐を作り、
これ以上の条件がないという場合には最後を「elseif」の文で終わらせても
問題はありません。

ただ、今後プログラムを作っていく上では、エラーを出さないために
いろいろな条件分岐の可能性を考えていかなくてはならず、
プログラムが使用される状況を考えながら作ることが大事なようです。

今回は少し長くなってしまいました。
if文はちょくちょく使われるので、覚えてしまえると今後とても楽になります。

0 件のコメント:

コメントを投稿