3
respostas

imprimir ordem randômica

olá turma!

eu gostaria de imprimir uma sequencia de 1 a 10 porém em ordem randômica.

Alguém tem uma ideia de como fazer?

valeu!

3 respostas

Bom dia.

segue solução:

import java.util.concurrent.ThreadLocalRandom;

public class Main {

    public static void main(String[] args) {
        Main main = new Main();
        main.imprimir();
    }

    public void imprimir(){
        int valorMinimo = 1;
        int valorMaximo = 10;
        //array que armazena se o valor já foi impresso. cada posição representa um numero
        boolean valorImpresso[] = new boolean[10];

        //garantindo a inicialização de falso em todas as posições
        for (int i = 0; i < 10; i++){
            valorImpresso[i] = false;
        }

        //variavel para armazenar a quantidade de numeros impressos
        int quantidadeImpressa = 0;

        //fica no loop enquanto nao imprimos os 10 valores
        while(quantidadeImpressa < 10){
            //recuperando um randômico
            int valor = randInt(valorMinimo, valorMaximo);

            //testa para ver se o valor foi impresso.
            //como o java inicia o array em zero, então subtraímos um do valor randomico
            if (valorImpresso[valor-1] == false){
                //imprime o valor
                System.out.println(valor);
                //aumenta o contador
                quantidadeImpressa++;
                //marca que já foi impresso
                valorImpresso[valor-1] = true;
            }
        }

    }

    //função que gera randomico
    public int randInt(int min, int max) {
        int randomNum = ThreadLocalRandom.current().nextInt(min, max + 1);
        return randomNum;
    }
}

Thiago, boa tarde!

eu copiei o código e deu certo!

exatamente o resultado que eu queria mas não tinha chegado nem perto.

valeu, muito obrigado!

Boa tarde!

Pra isso que estamos no forum.. para nos ajudarmos.

Só marca minha resposta como solução para encerrar o tópico

Bons estudos!