Не работает при z=0.1 но работает при любом другом значении z, например при z =0.5 все считает верно и выводит значение зелёный. 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 a = Double.parseDouble(reader.readLine() ); double z=0.0; int b=0; int c=3; int d=4; while (z<=60) { if(z%5==0 && z!=0) {b=b+5;c=c+5;d=d+5;} if(z>=b && z<=c && z==a) { System.out.print("зелёный");} if(z>=c && z<=d && z==a) { System.out.print("жёлтый");} if(z>=d && z<=b+5.0 && z==a) { System.out.print("красный");} z=z+0.1; } } }