[RESOLVIDO]duvida em preencher array com valores aleatorios

3 respostas
D

fiz assim mas esta dando null pointer exception

podem me explicar o pq?
grato desde ja

codigo abaixo

public class Array
{
    private int v[]; 
   
   public void preencheV()
   {
       for(int i=0;i>v.length;i++)
       {
          int v = (int)(Math.random() *10);          
       }
       
   }

}

3 Respostas

pmlm

1 - O array não foi inicializado. Ao fazer v.length dá erro

2 - Esse método não está a criar 10 posições para o array mas a criar uma nova variável v 10 vezes com valores aleatórios

3 - O ciclo for deve ser feito enquanto i for menor e não maior que o tamanho de v

public class Array  
    {  
        private int v[];   
         
       public void preencheV()  
       {  
           v = new int[10]; //inicializa o array com 10 posições
           for(int i=0;i<v.length;i++)   // troquei > por <
           {  
              v[i] = (int)(Math.random() *10); // atribui o valoor aleatório à posição i      
          }  
            
      }  
     
   }
D

E quando eu deixo a quantidade de posiçoes do vetor para o usuário definir, como posso fazer?

A

Bom dia colega.

Quando você cria um array, sempre deve ser declarado o tamanho, porém tem meios de deixar isso flexível.

Você pode atribuir uma variável ao tamanho do array.

por exemplo:

public class Exemplo {
   public static void main(String args[]){
      
      Scanner scan = new Scanner(System.in); //Aqui é criado um objeto da classe Scanner só para pegar dados do usuário.

            int posicao = 0; // criado a variável posicao do tipo int e inicializada.

           posicao = scan.nextInt(); // agora pegamos o que for digitado e atribuimos a variável posicao

           int v[] = new v[posicao]; //  Criado o array do tipo int, com um tamanho aleatório.
      
      }

}

OBS: tente entender os erros, aquele erro que você viu, significa que esta tentando acessar algo que não existe ou é nulo.

Espero ter ajudado.

Artur Martini

Criado 20 de junho de 2009
Ultima resposta 2 de set. de 2013
Respostas 3
Participantes 4