помогите пожалуйста решить данную задачу в java, не совсем понятно как её реализовать через switch. Задача: В восточном календаре принят 60-летний цикл, состоящий из 12-летних подциклов, обозначаемых названиями цвета: зеленый, красный, желтый, белый и голубой. В каждом подцикле годы носят названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. По номеру года определить его название, если 1984 год — начало цикла: «год зеленой крысы». Примеры:
Введите год: 2012
Ответ: дракон, голубой
Введите год: 1956
Ответ: обезьяна, красный
Если вам обязательно через switch то как-то так:
int year = 2016;
int deltaYear = year % 60; //откинем все прошедшие циклы
int colorYear = deltaYear % 12; // какой сейчас цвет
String color;
switch(colorYear){
//кейсы по цветам
// color = "цвет";
}
int animalYear = deltaYear / 12; // какое сейчас животное
String animal;
switch(animalYear ){
//кейсы по животным
// animal = "животное";
}
return animal + ", " + color;
Но я согласен, что проще завести массивы с цветом и животным и просто вытащить по индексу.
Шаг 1: На основе года определяете его позицию в 60 летнем цикле.
Например введен 1998 год, его позиция будет 14.
Шаг 2: Определяете, в каком интервале он находится
Примерно
Если меньше 12 то зеленый
Если меньше 24 то красный
Если меньше 36 то желтый
...
Для примера выше он будет красным.
Шаг 3: Берете остаток от деления на 12, и получаете позицию года в 12 летнем цикле Примерно:
Если 1 то крыса
Если 2 то корова
Если 3 то тигр
...
PS
Сознательно не писал код, так как это задача учебная, и хотя бы код вы должны написать сами
Вот как вариант создать все кейсы для годов.
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Введите год: ");
int inputYear = in.nextInt();
String resultYear;
switch(inputYear) {
case 1984:
resultYear = "крыса, зеленая";
break;
case 1985:
resultYear = "бык, синий";
break;
case 1986:
resultYear = "тирг, красный";
break;
default:
resultYear = "ошибка";
break;
}
System.out.println("Ответ: " + resultYear);
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть фронт, который отправляет разные запросы на промежуточный сервис(далее loadbalancer), он перенаправляет запросы на сервис апи(далее api)
Как сделать форматирование числа из "12345678" в "12 345 678"То есть нужно каждую 1000 отделить пробелом, что бы большие числа выглядели эстетично