Java 13のyieldキーワード
Java 13では、switch
式が導入され、それに伴いyield
キーワードも新たに追加されました。yield
は、switch
式の中で使用され、特定のケースの結果を返すために使用されます。
以下に、yield
キーワードの使用例を示します。
int day = 2;
String dayType = switch (day) {
case 1, 2, 3, 4, 5 -> {
yield "Weekday";
}
case 6, 7 -> {
yield "Weekend";
}
default -> {
yield "Invalid day";
}
};
System.out.println(dayType); // Outputs "Weekday"
この例では、yield
キーワードを使用して、各ケースの結果をswitch
式から返しています。このように、yield
キーワードは、switch
式の中で特定のケースの結果を返すための強力なツールです。ただし、yield
キーワードはswitch
式の中でのみ使用可能であり、それ以外の場所では使用できません。また、yield
キーワードはJava 13以降でのみ使用可能です。それ以前のバージョンでは使用できません。この点に注意が必要です。
yieldとreturnの違い
Javaでは、yield
とreturn
は両方とも値を返すために使用されますが、それぞれ異なる文脈で使用されます。
return
return
は、メソッドから値を返すために使用されます。return
文を実行すると、現在のメソッドの実行が終了し、制御が呼び出し元に戻ります。以下に、return
の使用例を示します。
public int add(int a, int b) {
return a + b;
}
この例では、add
メソッドは2つの整数を引数に取り、その和を返します。
yield
一方、yield
はJava 13で導入された新しいキーワードで、switch
式の中で使用されます。yield
は特定のケースの結果を返すために使用されます。以下に、yield
の使用例を示します。
int day = 2;
String dayType = switch (day) {
case 1, 2, 3, 4, 5 -> {
yield "Weekday";
}
case 6, 7 -> {
yield "Weekend";
}
default -> {
yield "Invalid day";
}
};
System.out.println(dayType); // Outputs "Weekday"
この例では、yield
キーワードを使用して、各ケースの結果をswitch
式から返しています。
したがって、yield
とreturn
の主な違いは、yield
はswitch
式の中で使用され、特定のケースの結果を返すために使用される一方、return
はメソッドから値を返すために使用されるということです。また、yield
はJava 13以降でのみ使用可能であり、それ以前のバージョンでは使用できません。この点に注意が必要です。
yieldとbreakの違い
Javaでは、yield
とbreak
は両方とも制御フローを操作するために使用されますが、それぞれ異なる文脈で使用されます。
break
break
は、ループ(for
、while
、do-while
)またはswitch
文から抜け出すために使用されます。break
文を実行すると、現在のループまたはswitch
文の実行が終了し、制御がその直後の文に移ります。以下に、break
の使用例を示します。
for (int i = 0; i < 10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
この例では、break
文が実行されるとfor
ループが終了し、制御がループの直後の文に移ります。
yield
一方、yield
はJava 13で導入された新しいキーワードで、switch
式の中で使用されます。yield
は特定のケースの結果を返すために使用されます。以下に、yield
の使用例を示します。
int day = 2;
String dayType = switch (day) {
case 1, 2, 3, 4, 5 -> {
yield "Weekday";
}
case 6, 7 -> {
yield "Weekend";
}
default -> {
yield "Invalid day";
}
};
System.out.println(dayType); // Outputs "Weekday"
この例では、yield
キーワードを使用して、各ケースの結果をswitch
式から返しています。
したがって、yield
とbreak
の主な違いは、yield
はswitch
式の中で使用され、特定のケースの結果を返すために使用される一方、break
はループまたはswitch
文から抜け出すために使用されるということです。また、yield
はJava 13以降でのみ使用可能であり、それ以前のバージョンでは使用できません。この点に注意が必要です。
switch式の基本的な使い方
Java 13以降では、switch
文だけでなく、switch
式も使用できます。switch
式は、値を返すことができ、その結果を変数に代入することができます。
以下に、switch
式の基本的な使い方を示します。
int day = 2;
String dayType = switch (day) {
case 1, 2, 3, 4, 5 -> "Weekday";
case 6, 7 -> "Weekend";
default -> "Invalid day";
};
System.out.println(dayType); // Outputs "Weekday"
この例では、switch
式を使用して、day
の値に応じて異なる文字列を返しています。そして、その結果をdayType
という変数に代入しています。
switch
式では、case
ラベルの後に->
演算子を使用します。そして、その後に返す値を記述します。複数の値に対して同じ結果を返す場合は、カンマで区切って一緒に記述することができます(例えば、case 1, 2, 3, 4, 5
)。
また、default
キーワードを使用して、どのcase
ラベルにも一致しない場合の結果を指定することができます。
このように、switch
式を使用すると、複数の値に対する結果を簡潔に記述することができます。ただし、switch
式はJava 13以降でのみ使用可能であり、それ以前のバージョンでは使用できません。この点に注意が必要です。
switch式の特徴
Java 13以降で導入されたswitch
式は、以下のような特徴を持っています。
-
値を返す:
switch
式は、値を返すことができます。これにより、switch
式の結果を直接変数に代入したり、他の式の一部として使用したりすることができます。 -
簡潔な記述:
switch
式では、case
ラベルの後に->
演算子を使用し、その後に返す値を記述します。これにより、各ケースの結果を簡潔に記述することができます。 -
複数の値に対する同一の結果:
switch
式では、カンマで区切って複数の値に対する同一の結果を一度に記述することができます。 -
yieldキーワードの使用:
switch
式では、yield
キーワードを使用して、複雑な計算を行った結果を返すことができます。 -
defaultキーワードの使用:
switch
式では、default
キーワードを使用して、どのcase
ラベルにも一致しない場合の結果を指定することができます。
以上のように、switch
式は、複数の値に対する結果を簡潔に記述し、値を返すことができる強力なツールです。ただし、switch
式はJava 13以降でのみ使用可能であり、それ以前のバージョンでは使用できません。この点に注意が必要です。また、switch
式の使用には、適切なcase
ラベルの選択と、それぞれのケースで適切な結果を返すことが重要です。これにより、コードの可読性と保守性が向上します。