Criando um método que recebe Array

Meu objetivo é criar um método que recebe um array de double e retorne sua média, mas não consigo percorrer o array! segue o código.

[code]
public class Exercicio4 {
double media(double[] a) {
double media = 0;
if (a.length < 2) {
System.out.println(“O array deve possuir pelo menos 2 elementos.”);
}

    doublemediaFinal = 0; 
    for (double i = 0 ; i <= a.length ; i++) { 
        double guardaSomador = 0; 
        double somador = a[i] + a[i++]; 
        guardaSomador += somador; 
        mediaFinal = guardaSomador / a.length; 
    } 

    return mediaFinal; 
} [/code]

tá dizendo q o erro tá na parte "somador = a[i] + a[i++], dizendo que é incompatível e que poderá haver perda de precisão na conversão de double pra int, MAS NAO TEM NENHUM INT! a não ser o i, mas o i é só para a posição!
como eu faço?

Estranhamente consegui.
é só declarar o “i” dentro do for, como int, agora, por que?

Seu código está muito equivocado. A média é simplesmente a soma de todos os elementos, dividido pelo total de elementos. A média de um conjunto vazio é 0.

O método para calculo da média, é, portanto:

[code]public class Exercicio4 {
double media(double[] a) {
if (a.length == 0) {
return 0;
}

    //Soma o valor de todos os elementos
    double soma = 0; 
    for (int i = 0; i &lt; a.length; i++) { 
         soma += a[i]; 
    } 

    //Calcula a média e retorna
    return soma / a.length; 
} 

}[/code]

Vou colocar seu código abaixo e comentar linha-a-linha alguns dos enganos:

[code]public class Exercicio4 {
double media(double[] a) {
double media = 0; //Essa variável não foi usada para nada
if (a.length < 2) {
System.out.println("O array deve possuir pelo menos 2 elementos.");
}

    doublemediaFinal = 0; 
    //A variável i será usada para o índice do array a[i], portanto, deve ser int, e não double.
    //Além disso, o último índice de um array é a[length]. Por isso, o for não deve usar &lt;=, só &lt;
    for (double i = 0 ; i &lt;= a.length ; i++) { 
        //Variáveis declaradas dentro do for só duram até o fim do for.
        //A variável guardaSomador será zerada a cada loop
        double guardaSomador = 0; 
        //Esse código está somando a[i] com a[i]. O ++ só soma 1 ao i após o comando

        //Agora, mesmo que você corrigisse para i+1, aqui você estaria somando cada par de números 
        //a[0] com a[1]. No segundo passo do for a[1] com a[2], no terceiro a[2] com a[3]. 
        //Perceba que cada número é somado 2 vezes na conta, e não uma.
        double somador = a[i] + a[i++]; 

        guardaSomador += somador; 

        //A média só precisa ser divida uma vez, não a cada número somado.
        mediaFinal = guardaSomador / a.length; 
    } 

    return mediaFinal; 
} [/code]

Seu problema no exercício não foi só programação, foi com a matemática básica. Procure revisa-la.