Javaではswitch文でdefaultを使うとどのような処理が行われるのか解説していきます。
独学が辛いあなたへ
Freeksは月額10,780円という破格の値段で現役エンジニアに質問する環境を手に入れることができるプログラミングスクールです。
次のような悩みを少しでも抱えていたら、まずは無料カウンセリングを受けてみてください。
申込みは1分でできます。あなたが1日悩んだエラーが、5分で解決するかもしれませんよ
>>Freeksの無料カウンセリングはこちら
サンプルプログラム
以下サンプルプログラムです。
class SwitchDefault {
public static void main(String[] args) {
int num = 3;
switch (num) {
case 1:
System.out.println("numは1です。");
break;
case 2:
System.out.println("numは2です。");
break;
default:
System.out.println("いずれのcaseも当てはまらなかった場合、defaultに書かれた処理が実行されます。");
}
}
}
実行結果は以下の通りになります。
$ java SwitchDefault
いずれのcaseも当てはまらなかった場合、defaultに書かれた処理が実行されます。
defaultを使うとswitch内のcaseの全てに当てはまらなかった場合に実行されます。今回の例でいくとnumの値が3であるためswitch文の中のcase1とcase2のいずれも当てはまらなかったからです。
caseの全てに当てはまらなかった場合と書きましたが、実際にはそうでない場合があります。フォールスルーというやつです。
フォールスルーについて
これはdefaultに限らずJavaでswitchを使うときの注意点になりますが、Javaにはフォールスルーというものが存在します。先ほどのコードのnumの値を2に変更して、実行してみます。
int num = 2;
実行結果は当然「numは2です。」と出力されます。
しかし、case 2のbreakをなくすと実行結果が以下のように変わります。
$ java SwitchDefault
numは2です。
いずれのcaseも当てはまらなかった場合、defaultに書かれた処理が実行されます。
このようにJavaではbreak文を書かないことで該当するcase以下の処理が全て実行されることになります。これをあえて利用する場合もあれば、breakの書き忘れでバグになることもあります。この点を注意してswitchを使うことが重要になります。
まとめ
Javaにおいてswitch文でdefaultを使うことで全てのcaseに当てはまらなかったときの処理を記述することができます。しかしbreakを書き忘れるとフォールスルーによって当てはまった場合でもdefault内の処理が実行されてしまうので注意が必要です。
プログラミング学習はUdemyがおすすめ
私はプログラミングの学習はUdemyで行うのが一番おすすめです。
Udemyでは動画講座でプログラミングなどのスキルを身につけることができます。
現役エンジニアがUdemyをオススメする理由は
・動画で好きなときに学べる
・一流の講師に学ぶことができる
・講師の方に質問ができる
・返金保証もある
・セールを頻繁に開催している
といったたくさんの理由があります。
現在Udemyではセールを開催しています!
通常時1万円から2万円前後の価格で講座が販売されていますが、セール時には1500円前後(ランチ代くらい)で一つの講座を購入することができます。
UdemyにはJavaの基礎が学べる講座もあるので、Javaの基礎を動画で学んでみたい!という方は今がチャンスです!