[Java] Switch Expression
🕹 Switch Expression switch
文と式に拡張
JDK 12,13ではpreviewが提供され、JDK 14では標準が提供される.
JEP 361 Switch Expressions
コードで比較する
Before
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
System.out.println(6);
break;
case TUESDAY:
System.out.println(7);
break;
case THURSDAY:
case SATURDAY:
System.out.println(8);
break;
case WEDNESDAY:
System.out.println(9);
break;
}
(MONDAY
・FRIDAY
・SUNDAY
)と(THURSDAY
・SATURDAY
・)は、同じ処理を行うために連続した位置にある.
重複コードが生成される(case
・break
・System.out.println
).int numLetters;
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
numLetters = 6;
break;
case TUESDAY:
numLetters = 7;
break;
case THURSDAY:
case SATURDAY:
numLetters = 8;
break;
case WEDNESDAY:
numLetters = 9;
break;
default:
throw new IllegalStateException("Wat: " + day);
}
numLetters
変数を先に宣言するswitch
ゲートが割り当てられている
After
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
同様に扱う(MONDAY
・FRIDAY
・SUNDAY
)と(THURSDAY
・SATURDAY
)を一体化している.
使用break
無分別、使用->
各条件に合ったコードを書き出します.int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};
numLetters
変数を宣言する場合、switch
式を用いて初期化した.
Final
System.out.println(
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
}
);
System.out.println
メソッド内で使用したswitch
式.
Reference
この問題について([Java] Switch Expression), 我々は、より多くの情報をここで見つけました
https://velog.io/@sjy5386/Java-Switch-Expression
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Before
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
System.out.println(6);
break;
case TUESDAY:
System.out.println(7);
break;
case THURSDAY:
case SATURDAY:
System.out.println(8);
break;
case WEDNESDAY:
System.out.println(9);
break;
}
(MONDAY
・FRIDAY
・SUNDAY
)と(THURSDAY
・SATURDAY
・)は、同じ処理を行うために連続した位置にある.重複コードが生成される(
case
・break
・System.out.println
).int numLetters;
switch (day) {
case MONDAY:
case FRIDAY:
case SUNDAY:
numLetters = 6;
break;
case TUESDAY:
numLetters = 7;
break;
case THURSDAY:
case SATURDAY:
numLetters = 8;
break;
case WEDNESDAY:
numLetters = 9;
break;
default:
throw new IllegalStateException("Wat: " + day);
}
numLetters
変数を先に宣言するswitch
ゲートが割り当てられているAfter
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> System.out.println(6);
case TUESDAY -> System.out.println(7);
case THURSDAY, SATURDAY -> System.out.println(8);
case WEDNESDAY -> System.out.println(9);
}
同様に扱う(MONDAY
・FRIDAY
・SUNDAY
)と(THURSDAY
・SATURDAY
)を一体化している.使用
break
無分別、使用->
各条件に合ったコードを書き出します.int numLetters = switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
};
numLetters
変数を宣言する場合、switch
式を用いて初期化した.Final
System.out.println(
switch (day) {
case MONDAY, FRIDAY, SUNDAY -> 6;
case TUESDAY -> 7;
case THURSDAY, SATURDAY -> 8;
case WEDNESDAY -> 9;
}
);
System.out.println
メソッド内で使用したswitch
式.Reference
この問題について([Java] Switch Expression), 我々は、より多くの情報をここで見つけました https://velog.io/@sjy5386/Java-Switch-Expressionテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol