【Java】新しくなったSwitch文(Switch Expressions)でコードをより簡潔に

スポンサーリンク

Switch Expressionsの概要

Switch Expressionsは、Switch文の新しい書き方で、Java 14で正式リリースされました。

Switch Expressionsを使うことで、コードをより簡潔に記述することができ、可読性が向上します。

Switch Expressionsの使い方

記述方法

Switch Expressionsの記述は、非常に簡単です。

Switch Expressionsは、従来のSwitch文のcaseに記述していた内容が、戻り値として返されるイメージになります。

それでは、従来のSwitch文と比較しつつ、Switch Expressionsの記述方法を確認します。

		// 従来のSwitch文
		System.out.println("-----従来のSwitch文-----");
		int seasonOrg = 7;
		switch (seasonOrg) {
		  case 1:
		    System.out.println("冬");
		    break;
		  case 2:
			  System.out.println("冬");
		    break;
		  case 3:
		    System.out.println("春");
		    break;
		  case 4:
			  System.out.println("春");
		    break;
		  case 5:
			  System.out.println("春");
		    break;
		  case 6:
		    System.out.println("夏");
		    break;
		  case 7:
			  System.out.println("夏");
		    break;
		  case 8:
			  System.out.println("夏");
			    break;
		  case 9:
			    System.out.println("秋");
			    break;
		  case 10:
			  System.out.println("秋");
			    break;
		  case 11:
			  System.out.println("秋");
			    break;
		  case 12:
			    System.out.println("冬");
			    break;
		}

		// Switch Expressions
		System.out.println("-----Switch Expressions-----");
		int seasonNew = 7;
		String message = switch (seasonNew) {
		  case 3,4,5 -> "春";
		  case 6,7,8 -> "夏";
		  case 9,10,11 -> "秋";
		  case 12,1,2 -> "冬";
		  default -> throw new IllegalArgumentException("不正な月です。");
		};
		
		System.out.println(message);

出力結果は以下になります。

-----従来のSwitch文-----
夏
-----Switch Expressions-----
夏

上記のソースコードは、月に対して季節を表示するプログラムです。

従来のSwitch文と比べると、Switch Expressionsの方が簡潔で可読性の高いソースコードになっていることがわかります。

// Switch Expressions
case 3,4,5 -> "春";
case 6,7,8 -> "夏";
case 9,10,11 -> "秋";
case 12,1,2 -> "冬";
default -> throw new IllegalArgumentException("不正な月です。");

Switch Expressionsは、case文に複数の定数を指定することができます
また、break文を必要せずにSwitch文を抜けること(フォールスルー)ができ、アロー演算子(->)の右側の値を返します。

この新しくなったSwitch文の記述方法によって、より短いソースコードでSwitch文を記載することができるようになりました。

その他:Switch Expressionsの記述例

yeildを使ったSwitch文

ソースコード
		// yield 文を使った Switch Expressions
		String results = switch (number) {
		case 3,4,5:
			yield "春";
		case 6,7,8:
			yield "夏";
		case 9,10,11:
			yield "秋";
		case 12,1,2:
			yield "冬";
		default:
			throw new IllegalArgumentException("不正な月です。");
		};

		System.out.println(results);
実行結果
解説

「yield」を使うことで、明示的に値を返すことができます。
用途としては、return文に似ています。

yeildについて、もう一つ注意すべきことがあります。

case 3,4,5:

上記のように「case 定数:」と記述する場合、「break」または「yield」を記述しないとフォールスルーが発生します。
つまり、現在のcase文処理後に次のcase文に処理が移ります。

Switch Expressionsのおける「アロー演算子(->)」と「コロン(:)」で記述方法が異なることに注意して下さい。

まとめ

Switch Expressionsを使うことで、ソースコードを非常に簡潔に記述することができ、可読性も向上します。

私もSwitch Expressionsは今回の勉強で始めて知りました。
Switch文は仕事でも使用する機会が多いため、Javaのバージョンさえ問題なければ、使用したいところです。

今回の記事がためになった方、何かアドバイスを頂ける方は、是非コメントをよろしくお願いいたします。

ではまた次のブログでお会いしましょう!!

Java基本
はじめまして
blueze

企業でアプリ開発をしているJavaプログラマーです。
当ブログでは、Javaを中心にIT系の発信をしています。
取得資格:Java Gold、AWS CLF、教育免許
趣味:将棋、野球、ゲーム

bluezeをフォローする
bluezeをフォローする
一緒に学ぶエンジニア

コメント

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