ジーニアスブログ – WEB制作会社ジーニアスウェブのお役立ちブログ

「もしも〜だったら・・・」条件分岐if文とswitch文の使い方

みなさんこんにちは、ジーニアスウェブの中武です。

最近テレビで紅葉特集の番組を多く見かけるようになりました。
紅葉シーズンはこれからですのでとても楽しみですね!

さて、今回は「もしも〜だったら・・・」を実現するif文と、switch文の使い方についてお話しさせて頂きます。

if文とswitch文とは?


まずはif文とswitch文がどういうものなのかを見ていきましょう!
それぞれの構造はこのようになっております。

if文の場合は真か偽、switch文の場合はbreakまでを1ブロックとして複数通りを判定できる、という風になっております。

構造を見ただけではちょっとわからないという方もいるかと思いますので、食べ物を例に説明していきたいと思います。
朝食は何を食べましたか?と質問された場合、foodがあなたが今朝食べたものと想像してください。これをif文、switch文で表現するとこのようになります。

少しそれぞれの記述方法などがわかって頂けたかなと思います。
一見if文だけわかればいいかなと思われるかもしれませんが、次の例を見た時に果たして同じことが言えるでしょうか?

if文だけだと何が問題なの?


こちらの例をご覧ください。

if文の中にさらにif文、またさらに・・・といった感じでif文が続くと、パッと見た時にどこからどこまでがどこの処理?となりませんか?

わかりやすくブロックごとに色分けをしてみます。

それぞれのブロックがどうなっているかがわかりましたね。

switch文を使用した表現


それではまず左の例を見ていきましょう。よく見ると全てfruitがどれに該当するかを判定しています。
複数分岐する場合、この場合にswitch文が大活躍します。
先程も説明しましたが、switch文はbreakまでが1ブロックですので、switch文にして同じように色分けするとこのようになります。

if文のみと比べるとこちらの方がブロックがわかりやすいと感じませんか?

switch文のポイント


続いて右の例を・・・と言いたいところですが、ここでswitch文でbreakをつけなかった場合どうなるかを見ていきましょう。
もしfruitがバナナだったらこのようになります。

ずばり!breakが抜けてしまうと次のbreakが見つかるまでは1ブロックと見なされてしまいます。
ブロックを分けたい場合は必ず「break」の記述を忘れないようにしましょう。

これを踏まえてif文だけで記述していた右の例を、if文とswitch文を使用して表現してみます。

先程もお話しましたが、breakが見つかるまでは1ブロックですので、このようにcaseを複数行続けて記述することもできます。

まとめ


いかがでしたでしょうか?
if文だけで表現した方がいい場合もありますが、基本的にはif文は2分岐ほど、switch文は複数分岐といったように用途に応じて使い分けるようにし、なるべく誰が見てもわかりやすいコードとなるように心掛けましょう。