PHPのif文, for文, while文, swich文について

プログラミングは条件分岐を行いながら組み立てるものです。

例えば、

  • Aボタンを押したらこの処理。
  • チェックに入力があればこの処理。
  • 入力された年齢が18以上ならこの処理。

こういった条件分岐を行う上で必要になってくるのが、if や for などの構文です。

これでにより、条件で処理を分けたり、同じ処理を指定した回数ループしたり出来ます。

PHPに限らずJavaやRuby、JavaScriptにも同じような分岐はあります。

if文による条件分岐

if文は条件を分岐するための構文です。

実際にコーディングするときにもかなり使います。

上の例は、$age(年齢)が20以上だったら「成人です。」というメッセージを表示するコードです。

1行目の $age = 20; は直接20という数値を代入していますが、画面で入力した値をセットしたりDBから取得した値をセットして使います。

 

if は「~だったら」という条件分岐ですが、「~だったら。そうでなかったら」の「そうでなかったら」の部分も書くことが出来ます。

このように else を使うことで、条件に当てはまらなかった場合の処理を記述出来ます。

例では、20以上でなかったら「成人ではありません。」というメッセージを表示するコードです。

 

そして、else if という分岐もあり、これは「Aだったら。Aで無くBだったら。AでもBでもなかったら」の「Aで無くBだったら。」の部分を書くことが出来ます。

このように書くことで、「成人では無いが、18歳以上なら」という条件分岐が出来ます。

for文による処理のループ

for文はループ処理に使います。

次にwhile文を紹介しますが、僕はfor文のほうが好きです。

例えば下のコードだと、$i が 0 から 19 (20未満)になるまでループします。

for (初期化; 条件; 変化;)

と記載します。

初期化は、ループをカウントする変数を定義するのが一般的です。

ここで定義した変数はその for 文内でしか使えません。

条件は、どこまでループするのかを定義します。

この条件が満たされればループは終了します。逆に満たされなければ無限にループし続けます。

変化は、1回ループが完了する毎に実行されます。

 

for文には continue と break というものがあります。

continue

continueは、ループ内の処理を、そのループに限り終了させ、変化; を実行した後次のループ処理にはいります。

上の例だと、i が 5 のときだけ i の値を表示せず、ループを続行することになります。

break

breakは、そのループ自体を終了し、次の処理に移ります。

上の例だと、i が 5 になったときにループを終了します。

結果は、0, 1, 2, 3, 4 を出力し、5のときに break して$iの値を出力せず、6以降は処理しません。

例えばチームメンバーのリストの中からリーダーを探す処理をしたとき、メンバーを全てループしつつ、役職がリーダーだったらbreak で終了するような感じで使います。

while文による処理のループ

先ほど説明した for 文と同様にループ処理を行うための構文です。

どちらが軽いとかあまり意識しないで大丈夫です。

大昔はかなり意識してたみたいですが、最近はサーバーの性能も良いのであまり軽さは求められないです。もちろん軽いプログラムのほうが良いですが。

上の for 文と同様のことを while 文で書くと下のコードのようになります。

while 文には do while という書き方もあり、上の例と同じようなものは下のコードのように書きます。

何が違うのかと言うと、先に1度ループ内の処理をして、条件を満たしていれば次のループもするところです。

上のほうのコードの場合は、age が 0 の場合は1度もループ内処理をすることはありません。

 

while文にも continue と break があります。

continue と break の動きは for 文のときと同じです。

switch文による条件分岐

switdh文はif文のように値によって条件分岐できる構文です。

僕はあまり使いませんが。

上のコードのように case で指定した変数内の値が何かを指定し、一致すればその後の処理が行われます。

default は、どの case にも当てはまらなかった場合に実行されます。

上の例をご覧頂くと case 20: の中には break がありません。

case 18: の中には break があります。

これは例えば age の値が20だった場合には、case 20 を実行した後 case 18 も実行することになります。

このように break を処理するまで、次の条件の処理も行うところが if 文との違いかと思います。

しかし、実際の現場ではあまり使われません。

バグが出やすいからだと思います。

僕が昔携わっていた300人規模のプロジェクトでは switch 文はコーディングルールで禁止でした。

まとめ

基本的には条件分岐とループがあることが分かればよいです。

書き方はG先生に聞けばたくさんサンプルが出てきます。

while文はまだ使うとしても switdh文はほぼ見かけません。

ifとforを知っていれば問題なくプログラミングは出来ます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA