Porque aparentemente não executa o ultimo método?

Porque não executa, ou pelo menos nao aparece o print do metodo SOMA…
Tenho outra duvida também, como eu faria para fazer uma média? Pois no caso eu iria somar tudo e depois divitir pelo tanto de numero que tenho, como eu faço para saber quantos numero tem? … E ultima duvida, nao entendi direito pra que serve o .length ? Ele soma? Usaria ele entao?

[code]public class CaclculosMatematicos {

static double[] arranjo = { 2.3, 3.9, 1.3, 5.4, 2.5, 9.9, 3.2 };

static double devolveMaior(double[] valores) {

	double result = valores[0];
	for (int i = 1; i < valores.length; i++) {
		if (result < valores[i]) {
			result = valores[i];
		}
	}
	System.out.println("Valor Maior: " + result);
	return result;

}

static double devolveMenor(double[] valores) {
	double result = valores[0];
	for (int i = 1; i < valores.length; i++) {
		if (result > valores[i]) {
			result = valores[i];
		}
	}
	System.out.println("Valor Menor: " + result);
	return result;
}

static double soma(double[] valores) {
double result = 0.0;
for (int i = 1; i < valores.length; i++) {
result = +valores[i];
return result;
}
System.out.println("A Soma e: " + result);
return result;
}

public static void main(String[] args) {
	devolveMaior(arranjo);
	devolveMenor(arranjo);
	soma(arranjo);

}

}
[/code]

Ele não está somando porque dentro do seu for você está retornando o result sem imprimir. Troque o seu for para for (int i = 1; i < valores.length; i++) { result += valores[i]; }
O length é o tamanho do array, ou seja, a quantidade de números. Para fazer uma média basta somar todos dentro de um for com um contador, e depois dividir a soma pelo contador. Quase a mesma coisa da soma.

tem certeza do que vc esta falando !!!

[Essa menssagem foi pro autor…]

função para calcular a média dos números


public void displaySeveral( double[] values ){
         double sum = 0.0;
         int divisor = values.length - 1;
         for( int i = 0; i < values.length; i++ )
               sum += values[ i ];

         System.out.println( "Resulted of the Several = " + ( sum / divisor ) );
}

Toda vez que uma linha no formato

 [b] return <retornoQualquer> [/b] 

é executada, o método que a contém é abandonado e as
linhas que estiverem abaixo do return não são executadas.

É por isso que, como foi dito pelo colega bKn, você tem que tirar o return
de dentro do for, pois da maneira que você colocou, apenas o 1º looping
do for é executado.

Quanto a divisão:

Você pode dividir a soma por valores.length para obter a média, já que
esse valores.length representa exatamente o número de lementos somados.

Abraço.

além do que o pessoal já disse:

for (int i = 1; i < valores.length; i++) { result = +valores[i]; // aqui você não está somando. está apenas informado que os valores são positivos. return result; }
abraço.

A divisão seria assim???

static double media(double[] valores) { double result = 0.0; for (int i = 1; i < valores.length; i++) { result += valores[i]; } result / valores.length; System.out.println("A Soma e: " + result); return result; }

CONSEGUI…

Muito obrigado pelas ajudas…

static double media(double[] valores) { double result = 0.0; for (int i = 1; i < valores.length; i++) { result += valores[i]; } result = result / valores.length -1 ; System.out.println("A Soma e: " + result); return result; }

Sim.

Desse jeito funcionará.

Mas se você quiser deixar seu código com uma linha a menos pode
fazer o seguinte dentro do for:

result += valores[i]/valores.length;

E então retirar a linha referente a divisão do código.

(Mas isso é totalmente subjetivo . . .)

Você não deveria estar dividindo por

valores.length -1

e sim por
valores.length .

Você está tendo que fazer isso porque seu for começa do 1 e não do ZERO.

Começando do 1 você não utiliza o valor da 1ª posição do seu vetor.