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ラベルの選択と、それぞれのケースで適切な結果を返すことが重要です。これにより、コードの可読性と保守性が向上します。