1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Problema com loop infinito.

Crie um vetor para guardar um valor X de posições neste caso são 10, mas quando vou rodar o "GeraDisco()" ele fica em alguns momentos em um loop infinito e não sei oque estou fazendo errado.

Bom, basicamente o que eu quero fazer é preencher as posições de 0 a 9 do vetor com números de 0 à 9 sem que estes sejam repetidos e que sejam posicionados aleatoriamente dentro do vetor.

public Integer[] Disco = new Integer[10];

public void GerarDisco() {
        //Inicio da contagem de tempo
        long InicioDaOperacao = System.currentTimeMillis();
        Random gerador = new Random();

        for (int i = 0; i < 10; i++) {
            Integer Atual = i;
            while (Atual.equals(i)) {
                Integer NewPos = gerador.nextInt(9);
                if (Disco[NewPos].equals(null)) {
                    Disco[NewPos] = i;
                    Atual++;
                }
                AtualizarDisco();
            }
        }

        //Fim da contagem de tempo
        long FimDaOperacao = System.currentTimeMillis() - InicioDaOperacao;
        JOptionPane.showMessageDialog(rootPane, (String.valueOf(FimDaOperacao / 1000.0 + " Segundos")));
    }
`
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

4 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java integer random ou faça a sua própria pergunta.