Menu
Coddy logo textTech

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"

challenge icon

チャレンジ

簡単

getDayType という名前のメソッドを作成し、2つの引数を受け取るようにしてください:

  1. 週の曜日(1-7)を表す整数(day
  2. 戻り値の形式を決定するブール値(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));
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

ロジックとフローのすべてのレッスン