Ayuda- Metodo

keka
01 de Septiembre del 2005
Hola necesito que alguien me corrija. Tengo que implementar un metedo pero no me sale. Tengo el codigo pero no me funciona.
El metodo dice:
Dado el metodo generaNumero(), cuya funcion es generar un numero del 0 al 7, realiza el metodo rellenar() que cree un array de tamaño 7 y lo rellene con numeros generados con el metodo generaNumero. De tal manera que al final no contenga numeros repetidos.
El metodo rellenar antes de finalizar mostrara por pantalla los numero almacenados en el array.
Mi codigo es:
public class Numero{

public void rellenar(){
int []arrayRellenar = new int[7];
int numeroElementos=0;
boolean existe = false;

while(numeroElementos < arrayRellenar.length){
int numeroGenerado = generaNumero();
if(numeroElementos ==0 ){
arrayRellenar[0]= numeroGenerado;
numeroElementos++;
}
else{
for(int i=0 ; i<numeroElementos ; i++){
if(arrayRellenar[i] == numeroGenerado){
existe = true;
}
else{
existe = false;
}
}
if(!existe){
arrayRellenar[numeroElementos] = numeroGenerado;
numeroElementos++;
}
}
}

for(int j=0 ; j<arrayRellenar.length ; j++){
System.out.println(arrayRellenar[j]+" ");
}
}


private int generaNumero(){
int x = (int )(Math.random()*7);
return x;
}


public static void main(String args[]){
Numero numero = new Numero ();
numero.rellenar();
}
}

¿Me podeis ayudar?
Muchas gracias anticipadas

murdockz
01 de Septiembre del 2005
te falta un break al encontrar el numero generado dentro del arreglo
y el random debe ser 7+1
para que genere numeros entre 1 y 7

este es el codigo como debe quedar

bye

public class Numero{

public void rellenar(){

int []arrayRellenar = new int[7];
int numeroElementos=0;
boolean existe = false;

while(numeroElementos < arrayRellenar.length){
int numeroGenerado = generaNumero();
if(numeroElementos ==0 ){
arrayRellenar[0]= numeroGenerado;
numeroElementos++;
}
else{
for(int i=0 ; i<arrayRellenar.length ; i++){
if(arrayRellenar[i] == numeroGenerado){
existe = true;
break;
}
else{
existe = false;
}
}
if(!existe){
arrayRellenar[numeroElementos] = numeroGenerado;
numeroElementos++;
}
}
}

for(int j=0 ; j<arrayRellenar.length ; j++){
System.out.println(arrayRellenar[j]+" ");
}
}


private int generaNumero(){
int x = (int )(Math.random()*7+1);
return x;
}


public static void main(String args[]){
Numero numero = new Numero ();
numero.rellenar();
}
}