PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Loop Infinito alternativas de questões #508969

30/01/2015

0

Olá.
Estou com uma dúvida a respeito de um método em Java que criei para preencher quatro botões com as alternativas de um Quiz.
Em um label coloquei a camisa de um time em baixo tem quatro botões com as alternativas que são preenchidos de forma aleatória.
Primeiro criei um array com a alternativa correta que passo como parâmetro n4 e outras três strings geradas de um outro array de forma aleatória.
Depois em um outro do While preencho os botões com os nomes fazendo uma comparação para que não sejam preenchidos valores repetidos.
Só que quando isso acontece ele entra em um loop e não sai disso.
Alguém teria uma melhor maneira de se fazer isso?

public void preencheAlternativas(String n4){
        
        Random random = new Random();     
        String n1, n2, n3;
        
        n1 = array.premierLeague.get(random.nextInt(5));

        do{
             n2 = array.premierLeague.get(random.nextInt(5));
             n3 = array.premierLeague.get(random.nextInt(5));
             
        }
        while((n1 == n2) || (n1 == n3) || (n1) == (n4) || (n2 == n3) || (n2 == n4));
        
        
        String[] d = {n1 , n2, n3, n4};
        
        btn_alternativa1.setText(d[random.nextInt(4)]);
        
        do{
            btn_alternativa2.setText(d[random.nextInt(4)]);
            btn_alternativa3.setText(d[random.nextInt(4)]);
            btn_alternativa4.setText(d[random.nextInt(4)]);
            System.out.println(btn_alternativa1.getName());
            System.out.println(btn_alternativa2.getName());
            System.out.println(btn_alternativa3.getName());
            System.out.println(btn_alternativa4.getName());
            System.out.println(lbl_camisa.getName());
        }
        while((btn_alternativa1.getText() == btn_alternativa2.getText()) || (btn_alternativa1.getText() == btn_alternativa3.getText())
               || (btn_alternativa1.getText() == btn_alternativa4.getText()) || (btn_alternativa2.getText() == btn_alternativa3.getText())
                || (btn_alternativa2.getText() == btn_alternativa4.getText()) || (btn_alternativa3.getText() == btn_alternativa4.getText()));
    }  
Paulo Henrique

Paulo Henrique

Responder

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

Aceitar