Помогите, пожалуйста, разобраться, почему программа не работает адекватно согласно условию задачи. Спасибо!
public class Solution {
public static volatile int numSeconds = 3;
public static void main(String[] args) throws InterruptedException {
RacingClock clock = new RacingClock();
Thread.sleep(numSeconds);
clock.interrupt();//add your code here - добавь код тут
}
public static class RacingClock extends Thread {
private double seconds;
public RacingClock() {
start();
}
public void run() {
StringBuilder builder = new StringBuilder();
Thread current = Thread.currentThread();
while (!current.isInterrupted()) {
try {
Thread.sleep(500);
}
catch (InterruptedException e) {
if (seconds < 3.5) {
for (int i = (int) seconds; i > 0; i--) {
builder.append(i + " ");
}
builder.append("Марш!");
System.out.println(builder.toString());
} else {
for (int i = (int) seconds; i > 0; i--) {
builder.append(i + " ");
}
builder.append("Прервано!");
System.out.println(builder.toString());
}
current.interrupt();
}
seconds = seconds + 0.5;
}
//add your code here - добавь код тут
}
}
}
Anonymous #2812035
35 уровень
Помогите разобраться в чем ошибка
Решен
Комментарии (3)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Даниил
2 ноября 2022, 18:40
Строчка где написано не верная, так как число которое указывается в скобках должно быть в миллисекундах. Т.е. что бы был правильный отсчет нужно переменную умножить что бы выглядело так Thread.sleep(numSeconds * 1000)
Это для начала. дальше попробуй самостоятельно
0
Anonymous #2812035
14 ноября 2022, 06:26
спасибо, все решил
+1
Даниил
16 ноября 2022, 19:15
Надеюсь у Вас там спокойно всё
0