Java - if/else

21/08/2019

0

Bom Dia, alguém sabe me dizer o por quê do meu código não sair do if mesmo quando a condição fica false ? meu código :

while (true) {
try {

if(data1.after(cal2) && data.before(cal2)) {
calculoDeUsodaCpu = calculoDeUsodaCpu + usoDaCpu;
calculoDeUsoDeMemoria = calculoDeUsoDeMemoria + usoDeMemoria;
System.out.println("CPU :" + calculoDeUsodaCpu);
System.out.println("MEMORIA:" + calculoDeUsoDeMemoria);
System.out.println("Contador = " + cont);

}else{
System.out.println("Fora de tempo esperado");
}
cont++;
Thread.sleep(1000);

}
catch (InterruptedException e) {
}
}
}

obs : ele está rodando dentro do método Run() de uma Thread, pelo que parece ele faz a verificação apenas uma vez, e entra no loop infinito
Paulo Lima

Paulo Lima

Responder

Post mais votado

21/08/2019

Você esta utilizando um While (True) o que vai gerar um loop infinito.

Para sair dos loop use um break; onde você quer interromper.

Ou mude a condição do if para o While que ao ser atendida encerra o loop.

Ou use:

      do {

                   ..............................

            }
        } while (condicao);

Jothaz

Jothaz
Responder

Mais Posts

21/08/2019

Paulo Lima

Você esta utilizando um While (True) o que vai gerar um loop infinito.

Para sair dos loop use um break; onde você quer interromper.

Ou mude a condição do if para o While que ao ser atendida encerra o loop.

Ou use:

      do {

                   ..............................

            }
        } while (condicao);
A ideia do código é que o if fique dentro do loop para que as variáveis de calculo fiquem somando os valores até que o tempo que faz a condição ser true acabe, o problema é que o if não sai da condição de true pra false, e as variáveis continuam somando
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar