用語解説こんにちは、徳田です。今回は、プログラミングの「条件分岐処理」についてご説明します。条件分岐処理は、前回ご説明した「ループ処理」と並んで、プログラミングには無くてはならないものです。前回、「ループ処理はWebサービス全体のソースコードの8~9割には登場する」と紹介しましたが、条件分岐処理はなんとそれ以上です。実際のソースコードはこのように、まあ条件分岐だらけです。条件分岐処理とは、どのようなもので、実際どのように使われるのか、実例を交えながら分かりやすく説明していきたいと思います。それから、現場では当たり前に行われている豆知識もお話していますので、ぜひ最後までお読みください。この記事で分かること・プログラミングの条件分岐処理とは何かを知ることが出来ます。・Webサービスではどのように条件分岐処理が使われているのか実例を知ることが出来ます。・現場の知識12結論から言うと条件分岐は、その名の通り「条件によって処理を分けたいとき」に使う。実際のソースコードは、条件分岐だらけになる。ソース内にコメントを書いておけば後から見たときに分かりやすい。条件分岐処理とはプログラムを書いていると、「こういう場合はこの処理」「別の場合はこの処理」というように、条件によって処理を分けたいときがあります。1ログインしてたら→HOMEを出す2ログインしてなかったら→ログイン画面に飛ばす1在庫があるなら→残り在庫数を出す2在庫が0なら→売り切れという表示を出すログインしている人が「1男性の場合」→男性向けおすすめ商品を表示する「2女性の場合」→女性向けおすすめ商品を表示する「3不明の場合」→ユニセックスおすすめ商品を表示するこのような場合に使うのが「条件分岐処理」です。条件分岐には「if文(イフ)」と「switch文(スイッチ)」という2種類があります。上から順番に条件を判定していき、条件が合致した時点で指定の処理を実行します。→処理Dを行うif文は、どれかの条件に合致するとそれ以降の条件判定は行いません。【switch文】あるデータに対して複数の値をチェックしたい場合に便利です。→33なら1つのデータ(上の例だと変数A)に対して多くの比較値で条件分岐する場合には、if文よりもswitch文の方が簡潔に書くことが出来ます。if文はどのような条件分岐でも記述することが出来ますが、switch文で書いた方がソースコードの処理や可読性が簡潔になる場合はswitch文を使うといったように、用途によって使い分けましょう。実際のWebサービスでは、例えば「メールアドレスの入力チェック」を行うような場合に使います。ログイン画面にメールアドレス入力欄があり、ユーザーが入力したメールアドレスが「未入力でないか」「正しい形式で入力されているか」「文字数が長すぎないか」といったチェックを行うような場合です。'メールアドレスを入力して下さい。'メールアドレスが不正です。'メールアドレスは200字以内で入力して下さい。if」という形で条件指定する決まりになっています。ちなみに、メールアドレスの形式チェックは「@が付いているか」「ドットが適切な位置に付いているか」などといった形で様々なチェックを行わなければならないのですが、これを1発でチェックしてくれる「filter_var」というPHPの標準ファンクションがあります。ファンクションについてはこちらの記事で詳しく説明しています。https://blog.senseshare.jp/function-programming.html次は、switch文の実例です。これは画面からファイルをアップロードした際の処理です。RuntimeException('ファイルが選択されていません。RuntimeException('ファイルサイズが大きすぎます。RuntimeException('エラーが発生しました。');}このように、1つのデータに対して複数の値をチェックしたいような場合はswitch文が向いています。上記の処理をif文で書いたとしたら、以下のようになります。RuntimeException('ファイルが選択されていません。RuntimeException('ファイルサイズが大きすぎます。RuntimeException('エラーが発生しました。」と書かなければならず面倒だし、ソースコードも見づらいですよね。いった場合はswitch文が向いています。現場の知識1プログラミングしていると条件分岐処理は必ず出てきますが、多く使い過ぎると後からソースコードを見たときに、自分でも何をやっているのか訳が分からなくなります。誰がソースコードを見ても分かりやすいように、条件分岐処理は出来るだけシンプルに書くように心がけましょう。しても複雑な条件を書かなければならない場合は、ソースコード内の条件式の部分に「意図」や「目的」をコメントとして細かく書いておきましょう。ログイン画面へ遷移する}普通に考えるとこのような条件式になるのですが、人間というものは必ずミスを犯すもので「バグ」というのは常に発生する前提で考えておく必要があります。不正アクセスなどにより何か想定外のデータが入ってくる可能性もあるかもしれません。万が一、条件式に漏れがあった場合、上記の形だと「どちらの式にも当てはまらない」ことが発生してしまうかもしれません。すると、処理が先に流れてしまい、思わぬ挙動が発生してしまうかもしれないので、こういった場合は以下のように書いておきます。ログイン画面へ遷移する}これなら、もし条件式にバグがあったり、不正なアクセスが行われた場合であっても「それ以外なら」に必ず入るので、ログイン画面に遷移させることが出来ます。プログラマーの想定外の事が起こっても、おかしな挙動が起こらないよう、elseを活用します。(想定外が発生しても問題無い方の処理をelseにしておきます。)こういったところを意識することで、出来るだけバグの少ないプログラムが書けるようになっていきます。まとめ条件分岐は、その名の通り「条件によって処理を分けたいとき」に使う。条件分岐が複雑になる時は、ソース内にコメントを書いて分かりやすくする。バグが発生する前提で、elseを使ってリスクを軽減する。条件分岐処理を使いこなすことで、複雑な処理を実現することが出来るようになります。上記のような点に気をつけて、上手に使いこなしていきましょう!この記事を読んだ人はこんな記事も読んでいます。プログラミング初心者のための分かりやすい。