Вы можете использовать Strings в операторе switch для проверки нескольких эквивалентных случаев:
switch (monthInput.toLowerCase()) {
case "january":
case "jan":
case "1":
days = 31;
break;
case "february":
case "feb":
case "2":
days = isLeapYear ? 29 : 28;
break;
case "march":
case "mar":
case "3":
days = 31;
break;
// etc.
default:
System.out.println(monthInput + " is not a valid month");
input.close();
System.exit(0);
}
Но это означает, что вы должны читать свои входные данные как String
, а не как int
...
Scanner input = new Scanner(System.in);
System.out.print("Enter a year:");
int year = input.nextInt(); // enter code here
input.nextLine(); // read the rest of the line (if any)
System.out.print("Enter a month:");
String monthInput = input.nextLine();
Обратите внимание на использование input.nextLine();
после .nextInt()
- это потому, что вызов nextInt()
не использует весь ввод, он только читает intчто вы ввели для Года, он не читает новую строку (клавиша ввода), поэтому вы должны прочитать это, чтобы быть готовым к чтению ввода следующий , который является номером месяцаили имя.