Contador regressivo em java

Pode parecer besteira, mas gostaria de entender como funciona um contador regressivo em java, uma label na regressiva de 20 a 0 e quando chegasse em zero fizesse tudo novamente, de 20 a 0

static Thread T = new Thread();

public static void main(String args[]) throws InterruptedException{

    for (int c = 20; c >= 0; c--) {
        T.sleep(1000);                                  
           System.out.println(c);
      
    }

}

Ele faz a contagem de 20 a 0

Mas ele não faz um loop pois no zero ele trava ja que temos c >= 0 na condição, alguma luz, nem sei se esse meu caminho ta certo.

Bom se você quer um laço infinito, poderá fazer de duas formas, usando o for, pode definir c com 20 quando chegar a zero…

for...
   if (c == 0) {
       c = 20; // reseta contador
   }

Ou usando while…

int c = 20;

while (true) {
    T.sleep(1000);
    System.out.println(c);

    if (c == 0) {
        c = 20; // reseta contador
    } else {
        c--; // diminui contagem
    }
}

Não faz muito sentido você deixar um laço infinito, tendo em vista que tanto for quanto while trabalham com uma condição de parada, a diferença é que no for é fixa, e no while é indefinida…

Tenha em mente também que algoritmos infinitos podem comprometer o processador…

1 curtida

Muito obrigado, pelas dicas e pela solução, resolveu minha dúvida. Abraços.

1 curtida