Написал решение через switch / case и вроде бы все правильно, но говорит, что строка 16 дублируются из за чего выбрасывает ошибку. Кто-то знает почему?
Может быть нельзя в case ставить логическое вычисление? (Error:(16, 13) java: duplicate case label)
P.S.: Конечно можно просто создать для каждого отдельно.. только что половину поставил case 1 / case 2 / case 3 и т.д. поштучно - все то, что шло до 6 норм обработало. А вот там где начиналось логическое вычисление выдало default, т.е. оно его просто "не видит"... есть 2 вопроса:
1. Почему в этом примере (даже если так и нельзя делать, прога не понимает) оно говорит, что строки дублируются, когда они разные?
2. Как можно поставить логические вычисления в case?
public static void main(String[] args) {
checkSeason(12);
checkSeason(4);
checkSeason(7);
checkSeason(10);
}
public static void checkSeason(int month) {
switch (month){
case 12 | 1 | 2:
System.out.println("зима");
break;
case 3 | 4 | 5:
System.out.println("весна");
break;
case 6 | 7 | 8:
System.out.println("лето");
break;
case 9 | 10 | 11:
System.out.println("осень");
break;
default:
System.out.println("Я тебе ничего не скажу, Поцелуй мой блестящий зад!");
break;
}
}package com.javarush.task.task04.task0411;
/*
Времена года на Терре
*/
public class Solution {
public static void main(String[] args) {
checkSeason(12);
checkSeason(4);
checkSeason(7);
checkSeason(10);
}
public static void checkSeason(int month) {
switch (month){
case 1 | 2 | 12:
System.out.println("зима");
break;
case 3 | 4 | 5:
System.out.println("весна");
break;
case 6 | 7 | 8:
System.out.println("лето");
break;
case 9 | 10 | 11:
System.out.println("осень");
break;
}
}
}