Duvida na execução do programa

1 resposta
ray_31

Boa noite pessoal, eu sou iniciante em java, estou no primeiro semestre de SI e o professor passou um exercicio, eu já o fiz, ele esta compilando, mas estou com um problema na hora da execução do programa. Esse é meu codigo:

class Simples {
    public static void main(String[] args) {
        Simples s = new Simples();
        int [] a = {2, 4, 42, 4, 5, 5}; //valores do array
        System.out.println(" O tamanho do array e: " + (s.inicializaArray(a, 4))); //imprime o valor retornado no metodo
        s.imprimeArray(a); 
    }
    
    //metodo para iniciar o array
    int inicializaArray(int [] a , int v){
       int i = 0; //contador
       while(i < a.length){
           a[i] = v; //faz o valor de v em a[i] 
           i = i + 1; //soma 1 unidade ao contador
       }
       return a.length; //retorna o tamanho do array
    }
    
    //metodo para imprimir o array
    void imprimeArray(int [] a){
        int i = 0; //contador
        while(i < a.length){
            System.out.println(" O valor de 'a' e: " + (a[i])); //imprime os i-esimos valores do array
            i = i + 1; //soma 1 ao contador
        }
    }
    void imprimeArray(int [] a){
        int i = 0;
        while(i < a.length){
            System.out.println(" O valor de 'a' e: " + (a[i]));
            i = i + 1;
        }
}

Então pessoal, esta tudo certo, fiz como o professor pediu, mas quando eu executo, os valores impressos pelo metodo imprimeArray() ficam todos iguais ao valor que eu passei como parametro no inicializaArray().
Por exemplo, nesse caso 4 está como parametro, quando eu rodar o programa todos os valores o array serão 4. E o que eu queria na verdade é que no metodo que imprime os valores fossem esses: int [] a = {2, 4, 42, 4, 5, 5};

Exemplo de compilação:

O tamanho do array e: 6
 O valor de 'a' e: 4
 O valor de 'a' e: 4
 O valor de 'a' e: 4
 O valor de 'a' e: 4
 O valor de 'a' e: 4
 O valor de 'a' e: 4

Se alguem puder me ajudar vou ficar muito grata! :oops:
Att, Rayane :)

1 Resposta

pmlm

Na linha 5, fazes s.inicializaArray(a, 4)

Depois o método inicializaArray atribui o segundo parâmetro (v, que é 4 neste caso) a todas as posições do array. Se já inicializaste o array no main para que o método inicializaArray?

Criado 20 de abril de 2013
Ultima resposta 20 de abr. de 2013
Respostas 1
Participantes 2