【Java】switch文のdefaultの使い方をif文と比較して解説!
switch文のdefaultは、値がどの条件値にも当てはまらない場合の処理を、switch文で書きたい時に使われます。
if文だとelseのイメージがあるかと思いますが、一つの条件に対して「はい」か「いいえ」の分岐となります。
しかし、switch文は多数の条件分岐に対してのどの条件値にも当てはまらない場合の処理なのでif文とは使い方が少し変わってきます。
そのため、if文とswitch文を使い分けると複雑な条件のプログラムでも分かりやすくコードを書くことができます。
今回は、switch文でのdefault句の使い方をif文と比較して解説していきます。
目次
defaultとは
defaultとは値がどの条件の値にも当てはまらない場合にそれ以外として処理されるようになり、switch文で書きたい時に使われます。
if文と比較を行う
if文の場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class Main { public static void main(String[] args) { int motherold = 80 if (motherold == 100) { System.out.println("母は100歳である。"); } else if(motherold == 80 ){ System.out.println("母は80歳である。"); } else if(motherold == 50 ){ System.out.println("母は50歳である。"); } } } |
出力結果
母は80歳である。
条件分岐が多いため、どうしてもelse-ifが増えてしまい
今どこを通っているのかコードをたどっていかなければならないと思います。
それでは次のコードをswitch文で書いてみます。
switch-case文の場合
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
class Main { public static void main(String[] args) { int motherold = 80 switch (motherOld) { case 100: System.out.println("母は100歳である。"); break; case 80: System.out.println("母は80歳である。"); break; case 50: System.out.println("母は50歳である。"); break; } } } |
出力結果
母は80歳である。
if文でelseに記載していた処理が、switch文ではdefaultに処理を記載しています。
つまり、値がどの条件値にも当てはまらない場合の処理を、switch文で書く場合に使われるのがdefault句となります。
switch-caseとifを組み合わせてみる
switch-caseとifを組み合わせることで複雑な条件でも分かりやすいコードを作成することができます。
四則を計算
電卓のように数字と符号を入力して結果を出力するコードを作成します。
例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
public class Main { public static void main(String[] args) throws Exception { calc(2, 4, "+"); calc(3, 0, "÷"); calc(3, 5, "あ"); } public static void calc(int val1, int val2, String hugo){ int sum = 0; switch(hugo) { case "+": sum = val1 + val2; break; case "-": sum = val1 - val2; break; case "×": sum = val1 * val2; break; case "÷": if (val2 != 0) { sum = val1 / val2; }else { sum = 0; System.out.println("割る数0の場合は割り切れません。"); } break; default: System.out.println("符号が認識できませんでした。"); } System.out.println("答え:" + sum); } } |
出力結果
答え:6
割る数0の場合は割り切れません。
答え:0
符号が認識できませんでした。
符号の条件分岐はswich-case文で処理を分岐させていますが、除法のval2が0だった場合の条件分岐はif文で処理を分岐させています。
このようにswitch文とif文を組み合わせることで多数の条件分岐と2択の条件分岐で役割を切り分けることができます。
switch文オンリーやif文オンリーでも書くことはできますが、組み合わせた方がコードが分かりやすくなります。
まとめ
switch文のdefaultはどの条件にも当てはまらない場合に使用
switch文のdefaultはどの条件の値にも当てはまらない場合に使用する
⚫︎ switch文のdefaultはcaseの値がどれにも当てはまらない場合の処理に使われる。
⚫︎ defaultはif文のelseと似たような役割をする
⚫︎ switch-case文とif文を組み合わせるとより分かりやすいコードを書くことができる
ST
株式会社flyhawkのSTです。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。