Приветствую! Ситуация где застрял и не могу вычислить ошибку! По итогу если меньше 3.5 секунд работает корректно, если больше 3.5, оно отсчитывает по примеру: 4 3 2 1 и затем "Прервано" выводиться на экран бесконечное число раз и цикл не останавливается. В условии загнал while(numSeconds >= 0 && !current.isInterrupted()) и почему то цикл не выполняется, голову сломал не знаю в чем дело! Задание: 1. Разберись, что делает программа. 2. Реализуй логику метода run так, чтобы каждую секунду через пробел выдавался отсчет начиная с numSeconds до 1, а потом слово [Марш!] (см примеры). 3. Если нить работает 3.5 секунды или более, прерви ее методом interrupt и внутри нити выведи в консоль слово [Прервано!]. Пример для numSeconds=4 : "4 3 2 1 Прервано!" 4. Если нить работает менее 3.5 секунд, она должна завершиться сама. Пример для numSeconds=3 : "3 2 1 Марш!" PS: метод sleep выбрасывает InterruptedException. Вот код: public class Solution { public static volatile int numSeconds = 4; public static void main(String[] args) throws InterruptedException { RacingClock clock = new RacingClock(); //add your code here - добавь код тут //clock.start(); } public static class RacingClock extends Thread { public RacingClock() { start(); } public void run() { //add your code here - добавь код тут Thread current = Thread.currentThread(); double secLimit = 0; while (numSeconds >= 0 && !current.isInterrupted()) { try { if (secLimit >= 3.5) { System.out.print("Прервано!"); current.interrupt(); } else { if (numSeconds == 0) { System.out.print("Марш!"); } else { System.out.print(numSeconds + " ");; } } Thread.sleep(1000); numSeconds--; secLimit++; } catch (InterruptedException e) { } } } } }