alguem pode me dizer o que esta dando errado nesse codigo
eu não posso repetir os numeros mas ele não esta lendo os 8 numeros
for(int x = 0; x < 8; x++){
a=(int)(Math.random()*8);
for(int n=0; n<8; n++){
if(vetor[n] == a){
achou = true;
}
}
if (achou == false){
vetor[x] = a;
System.out.println("t "+a);
}
achou = false;
}
tenta assim…
[code] int a;
int x = 0;
int n = 0;
int[] vetor = new int[8];
boolean achou = false;
while( x < 8) {
a = (int) (Math.random() * 8);
while (n < x) {
if (vetor[n] == a) {
achou = true;
}
n++;
}
n = 0;
if (achou == false) {
vetor[x] = a;
x++;
System.out.println("t " + a);
}
achou = false;
}[/code]
mas por que no meu jeito não deu certo?
Pq ele vai passar so 8x no for… ai tipo se ele acha 2 numeros repetidos seu vetor vai ter so 6 numeros
desse jeito ele so vai sair do laço while quando o vetor tiver 8 numeros…
Achei este outro codigo, por WendersonLP:
http://www.guj.com.br/posts/list/147358.java#794879
[code]Random rand = new Random();
ArrayList list = new ArrayList();
int quantidadeDeNumeros = 10;
for (int i = 0; i < quantidadeDeNumeros;i++) {
int numeroAuxiliar = rand.nextInt(10);
// enquanto o número contiver na lista é lido outro número
while (list.contains(numeroAuxiliar)) {
numeroAuxiliar = rand.nextInt(10);
}
list.add(numeroAuxiliar);
}
System.out.println(list);
}[/code]