switch式
CoddyのJavaジャーニー「ロジックとフロー」セクションの一部 — レッスン 36/59。
switch 式は、より簡潔な switch 文を書いて値を直接返すことを可能にする機能です。どのように動作するかを確認しましょう。
値を返す基本的な switch 式を作成します:
int number = 1;
String message = switch(number) {
case 1 -> "One";
case 2 -> "Two";
default -> "Other";
};上記のコードを実行した後、message 変数には次の内容が含まれます:
"One"
複数のケースをまとめて扱うこともできます:
int day = 2;
String type = switch(day) {
case 1, 2, 3, 4, 5 -> "Weekday";
case 6, 7 -> "Weekend";
default -> "Invalid day";
};上記のコードを実行した後、type 変数には次のものが含まれます:
"Weekday"
チャレンジ
簡単getDayType という名前のメソッドを作成し、2つの引数を受け取るようにしてください:
- 週の曜日(1-7)を表す整数(
day) - 戻り値の形式を決定するブール値(
abbreviated)
このメソッドは、switch式を使用して日タイプを返すようにしてください:
- 1-5の日(月曜日から金曜日):省略されていない場合 "WORKDAY" を返し、省略されている場合 "WKD" を返す
- 6-7の日(土曜日と日曜日):省略されていない場合 "WEEKEND" を返し、省略されている場合 "WKND" を返す
- その他の数値の場合:省略されていない場合 "INVALID" を返し、省略されている場合 "INV" を返す
チートシート
スイッチ式を使うと、矢印構文(->)を使用して値を直接返す簡潔なスイッチ文を書くことができます:
int number = 1;
String message = switch(number) {
case 1 -> "One";
case 2 -> "Two";
default -> "Other";
};カンマで区切ることで、複数のケースを一緒に扱うことができます:
int day = 2;
String type = switch(day) {
case 1, 2, 3, 4, 5 -> "Weekday";
case 6, 7 -> "Weekend";
default -> "Invalid day";
};自分で試してみよう
import java.util.Scanner;
public class Main {
public static String getDayType(int day, boolean abbreviated) {
// ここにコードを書いてください
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int day = Integer.parseInt(scanner.nextLine());
boolean abbreviated = Boolean.parseBoolean(scanner.nextLine());
System.out.println(getDayType(day, abbreviated));
}
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。