【Java】多数の条件分岐ならswitch文!使い方をサンプルコードで解説!

多数の条件の処理を行いたいならswitch文を使用します。

条件分岐はif文をイメージしますが、分岐が多くなった場合にはswitch文が使われます。
分岐が多い場合でもif文で書いても良いのですが、if-else-if文が続き、コードが長くなり分かりづらくなることがあります。

しかし、switch文を使用すると、if-else-ifと同じ処理を書くことができ、if文よりもコードが読みやすくなります。

今回はswitch文の
⚫︎ 基本的な使い方
⚫︎ 応用的な使い方
について解説していきます。

switch文とは

switch文はif文のように条件分岐を行う構文です。
しかし、if文と比べて、switch文は条件が多い場合に適応した構文になります。

switch文の書き方

switch-case文の構文は次のように記述します。

switch文が式の値、それを各caseの値と比較します。
値が特定のcaseと一致する場合、一致するcaseの処理が実行されます。

たとえば、switch(式)の値が2である場合、2の値に一致するcaseが実行されます。
しかし、各ケースでのbreak句の使用に注意してください。

break文はswitch文の実行の終了するために使用されます。
break句が使用されない場合、一致するケースの後のすべてのswitch文が終わりまで順番に実行されるため注意してください。

switch文の基本的な使い方

switch-case文の基本的な使い方を見てみきます。

出力結果

水曜日です。

このコードでは、式の値とcaseの値を比較し、
一致した値の処理を実行しています。
今回はweekの値が4となり、dayの値が水曜日となります。
そのため、「水曜日です。」という文字が表示されます。

default句

switch文の式の値がどのcaseの値とも一致しなかった場合には、defaultに書かれた処理が実行されます。
defaultの使い方を先ほどのコードで確認してみましょう。

出力結果

エラーです。

今回はweekの値を100に変更し、
switchの式の値がcaseのどの値とも一致しなくなりました。
その際に、プログラムはどのcaseの値にも一致しなかったということで
defaultに書かれた処理を実行し、dayの値がエラーとなり「エラーです。」と表示しています。

break句

switch文でのbreakは、ループ文でのbreakと似たような意味を持ち、switch文から抜ける動きをします。
switch文で要注意なのが、breakをしなければ次にあるcaseに処理が移ってしまうことです。

この動きを「フォールスルー(fall through)」とも呼ぶのですが、
breakはそれを止めるためにもあります。

出力結果

金曜日です。

caseの値が5の場合、break句がない為、5の場合の処理を実行した後に6の場合の処理が実行されます。
つまり、dayの値が「木曜日」から「金曜日」に上書きされてしまいます。

switch文のの応用的な使い方

月の初めと月の終わりの日数を計算

出力結果

2月から12月までの日数は334日です。

今日のポイント

switch文で多数の条件の処理を行う

⚫︎ 多数の条件処理を行う場合はswitch文を使用する

⚫︎ break句を使用することでswitch文から抜けることができる
(break句を書かないと処理がswitchの処理が続いてしまう)

⚫︎ default句を使用することでswitch文の式の値がどのcaseの値とも一致しなかった場合の処理が実行される

補足

Stringによるswitch文

int型だけでなく、String型の変数をswitch文で判定することができます。

出力結果

ABCです。

関連記事

if文についてはこちらをご参考ください。

Writer

ST

株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報