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