В чём проблема? Код работает, выводит на экран нужные цвета, ввод работает на вещественное число.
Вроде всё как надо, но проверку не проходит.
Поясню для ускорения понимания логики кода.
В коде размещено 2 цикла for:
1. Внешний, это часовой цикл работы светофора.
2. Внутренний, это цикл смены цветов, состоящий из 3 итераций (со вложенными условиями if).
В цикле смены цветов, за одну итерацию проверяется только одно условие, для вывода одного цвета.
В случае соответствия введённого вещественного числа с условием для вывода цвета, цвет выводится.
⚫ Переменная 'x' несёт функцию счётчика внутреннего цикла (цикла смены цветов),
её задачей является отсчёт количества минут с момента старта цикла
(для дальнейшего сравнения с введённым пользователем вещественным числом 't').
⚫ Переменная 't' - отвечает за ввод целочисленного числа.
P.S. — в условиях for и if специально указал тип double, чтобы было единообразие.
package com.javarush.task.task04.task0416;
/*
Переходим дорогу вслепую
*/
import java.io.*;
import java.util.*;
public class Solution {
public static void main(String[] args) throws Exception {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
double t = 0.00;
t += Double.parseDouble(reader.readLine());
double x = 0.00;
for (double j = 1.00; j < 12.00; j++) {
for (double a = 0.00; a <= 3.00; a++ ) {
if (a == 0.00) {
x += 3.00;
if (t <= x) {
System.out.println("зелёный");
return;
}
}
if (a == 1.00) {
x += 1.00;
if (t <= x) {
System.out.println("жёлтый");
return;
}
}
if (a == 2.00) {
x += 1.00;
if (t <= x) {
System.out.println("красный");
return;
}
}
}
}
}
}