das Ergebnis ist richtig, ich weiss nicht warum es nicht funktioniert, und wofür braucht man die clock.interrupt() wenn man sowieso mit einem weitern boolean arbeiten muss? oder hat jemand einen tipp wie es ohne funktioniert?
package de.codegym.task.task16.task1617;
/*
Countdown beim Rennen
*/
public class Solution {
public static volatile int numSeconds = 4;
public static boolean isCanceled;
public static void main(String[] args) throws InterruptedException {
RacingClock clock = new RacingClock();
Thread.sleep(3500);
isCanceled = true;
clock.interrupt();
}
public static class RacingClock extends Thread {
public RacingClock() {
start();
}
public void run() {
while(!isCanceled){
try{
if(numSeconds != 0){
System.out.print(numSeconds + " ");
numSeconds--;
Thread.sleep(1000);
if(numSeconds == 0){
System.out.print("Los!");
isCanceled = true;
}
}
}
catch(InterruptedException e){
System.out.println("Unterbrochen!");
}
}
}
}
}