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