【Java】switchのdefaultについて解説

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が学べる基礎講座iconもあります。
「これからJavaを勉強したい!」という方はチェックしてみてください

タイトルとURLをコピーしました