Preciso clicar várias vezes no botão para então ele realizar a ação

8 respostas
S

Criei um negócio que me gera alguns valores (pares) aleatórios. O problema é que eu preciso clicar umas 4 vezes no botão para então ele começar a gerar os números. Pelo que eu entendi (eu acho) é porque como quero apenas números pares, quando cai número impar, ele não faz nada, mas como eu arrumo isso?

double dmgM = 4 + Math.random() * (11 - 1); //Dano mínimo 4 e máximo 12
int damageM = (int) dmgM; //convertendo a variável dmgM (double) para int     
//criar condição IF para selecionar apenas números pares
if (damageM % 2 == 0) 
{
    //convertendo int para string para mostrar no jLabel
    lblDamageM.setText(Integer.toString(damageM)); 
}

8 Respostas

Jonathan_Medeiros

Você teria que tratar isso com um laço de repetição, para que ele gere todos os números pares de uma só vez com um único clique.

S

Mas eu não quero que gere todos os números pares de uma vez. Quero um numero par aleatório a cada vez que eu clicar, entende?

Jonathan_Medeiros

Entendi, mas você vai ter que usar um laço de repetição da mesma forma!
O laço será executado enquanto o número obtido for ímpar, caso seja par, saia do laço e imprima o número!

H

Gere um número aletatório qualquer e multiplique o número gerado por 2, logo sempre terá um número par.

Eldius

Uma outra opção seriasomar ou subtrair 1 do número em caso de número ímpar.

S

Obrigado pelas sugestões. Fiz o seguinte e deu certo:
Adicionei o seguinte…

} else if (damageM % 2 == 1) {
        damageM = damageM + 1;
        lblDamageM.setText(Integer.toString(damageM));
    }
Jonathan_Medeiros

Vou dar só uma sugestão no seu código, você poderia adicionar somente:

} else {
        damageM = damageM + 1;
        lblDamageM.setText(Integer.toString(damageM));
    }

Não sendo necessário testar o valor damageM novamente, pois se o mesmo for par ele entra na condição do if, caso contrário se for ímpar automaticamente ele vai pro else, atendendo o problema com um teste a menos.

S

ah, entendi… Vlw ae, deixou mais enxuto!

Criado 2 de maio de 2017
Ultima resposta 6 de mai. de 2017
Respostas 8
Participantes 4