Javaではswitch文でdefaultを使うとどのような処理が行われるのか解説していきます。
サンプルプログラム
以下サンプルプログラムです。
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では
-
- 動画で好きな時間・隙間時間に学べる
- 一流のエンジニアから教えてもらえる
- 好きな技術を体系的に学べる
- 実際に手を動かしながら学ぶことができる
- セール時であれば1500円〜2000円ほどで購入できる(大半の技術書より安い)
- 講座自体がアップデートされていくので情報が古くなりにくい
UdemyにはJavaの基礎講座
もあるのでJavaをこれから勉強してプログラミングを勉強したい!という方にオススメです!
コメント