import java.util.Scanner;
public class MonthDays {
public static void main(String[] args) {
// ユーザーから月の入力を受け取る
Scanner scanner = new Scanner(System.in);
System.out.print("月を入力してください(1から12): ");
int month = scanner.nextInt();
// 入力された月に対応する日数を表示する
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println("31日");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println("30日");
break;
case 2:
System.out.println("28または29日");
break;
default:
System.out.println("無効な月です");
}
// Scannerを閉じる
scanner.close();
}
}
このプログラムでは、switch
文を使用して月ごとに日数を処理しています。2月はうるう年の条件によって日数が変わるため、case 2
では追加の条件分岐が行われています。また、無効な月が入力された場合にはデフォルトのメッセージが表示されます。
複数のcaseに共通の処理
switch
文の各case
に共通の処理を行うには、各case
の最後に処理を追加することができます。以下に例を示します。
import java.util.Scanner;
public class MonthDays {
public static void main(String[] args) {
// ユーザーから月の入力を受け取る
Scanner scanner = new Scanner(System.in);
System.out.print("月を入力してください(1から12): ");
int month = scanner.nextInt();
// 入力された月に対応する日数を表示する
int days;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
case 2:
System.out.println("28または29日");
// 共通の処理を追加
days = 28; // この行を追加しても問題ありません
break;
default:
System.out.println("無効な月です");
// 共通の処理を追加
days = 0; // この行を追加しても問題ありません
}
// 共通の処理
if (days != 0) {
System.out.println(month + "月は" + days + "日です");
}
// Scannerを閉じる
scanner.close();
}
}
このプログラムでは、days
という変数を導入し、各case
でdays
の値を設定しています。switch
文の後に共通の処理が続くので、どのcase
に該当しても最終的に同じ処理が行われます。