Все цвета кроме красного работают хорошо.
Логика такая:
1. в 60 минутах зеленый горит в числахс окончаниями 0,1,2,5,6,7
2. в 60 минутах желтый горит в числах с окончаниями 3,8
3. в 60 минутах красный горит в числах с окончаниями 4,9
Если вкратце что происходит в коде:
1. получаем с ввода клавы строку
2. условия, если попадаем в интервал минут с 0 по 2.9 или с 5 по 7.9 => горит зеленый
если попадаем в интервал с 3 по 3.9 или с 8 по 8.9 => горит желтый
если попадаем в интервал с 4 по 4.9 или 9 по 9.9 => горит красный
if (timeLength > 1 && timeLength <= 2) {
t = Character.getNumericValue(time.charAt(timeLength - 1));
}
это если целое двухзначное
else if (time.length() >= 4) {
String newT = time.substring(1, timeLength);
t = Double.parseDouble(newT);
}
это если ввели с плавающей точкойpackage com.javarush.task.task04.task0416;
/*
Переходим дорогу вслепую
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String time = reader.readLine();
int timeLength = time.length();
double t;
if (timeLength > 1 && timeLength <= 2) {
t = Character.getNumericValue(time.charAt(timeLength - 1));
}
else if (time.length() >= 4) {
String newT = time.substring(1, timeLength);
t = Double.parseDouble(newT);
}
else {
t = Double.parseDouble(time);
}
if ((t >= 0 && t < 3) || (t >= 5 && t < 8)) {
System.out.println("зелёный");
}
else if ((t >= 3 && t < 4) || (t >= 8 && t < 9)) {
System.out.println("жёлтый");
}
else if ((t >= 4 && t < 5) || (t >= 9 && t < 10)) {
System.out.println("красный");
}
}
}