Soy extremadamente nuevo en Java y tenemos la tarea de tomar valores aleatorios de una matriz y pasarlos a través de un método en el que los agrega todos para obtener un total acumulado.

Para el método de suma, me gustaría tomar cada valor de todo el índice (dado por sizeOfArray) y sumarlos.

¡Gracias!

public static void sumMethod(double[] arrayOfDoubles){
   //How to get the value from each indexes (given by sizeOfArray) and add them for the sum
   int arrayLength = arrayOfDoubles.length;
         
        System.out.println(arrayOfDoubles);
   }

  public static void main(String[] args) {   
   //1-3: Set up Scanner object to collect user's input on the size of array.
      Scanner keyboard = new Scanner(System.in);
      System.out.println("How many double numerical entries do you have?");
   //4: Declare an array of size sizeOfArray
      int sizeOfArray = keyboard.nextInt();  
   
      //Initialize array
      double[] arrayOfDoubles;
      arrayOfDoubles = new double[sizeOfArray];   
   
      
      
   
      for(int i = 0; i < sizeOfArray; i++){
      //5: Use the Random number Class and walk over the array 
         Random randomNum = new Random();       
         arrayOfDoubles[i] = randomNum.nextDouble(0.0 , 100.0);
      //6: Invoke SumMethod
         sumMethod(arrayOfDoubles); 
      }
      
     
      
      
   }
}
0
Kaji 27 nov. 2021 a las 07:58
1
Obtienes el valor con arrayOfDoubles[index]. declare una variable int sum = 0 fuera de foor loop, luego sum += arrayOfDoubles[i] dentro de su for loop. al final haz lo que quieras con la suma.
 – 
Emad Ali
27 nov. 2021 a las 08:19
Esto debe publicarse como una respuesta, no como un comentario.
 – 
Code-Apprentice
27 nov. 2021 a las 08:29
@ Code-Apprentice lo siento, todavía no tengo claro cuáles deberían ser las respuestas y qué son los comentarios, tenía la idea de que una respuesta debería ser una explicación larga y detallada, veo a muchas personas dando una breve descripción en la sección de comentarios.
 – 
Emad Ali
27 nov. 2021 a las 09:08

2 respuestas

La mejor respuesta
public static void sumMethod(double[] arrayOfDoubles) {
        double sum = 0;
        for (int j = 0; j < arrayOfDoubles.length; j++) {
            sum += arrayOfDoubles[j];
        }
    }

Esto también funcionará, si aún no está familiarizado con el ciclo for-each.

Además, es mejor usar arrayOfDoubles.length en el bucle, en caso de que edite el código más tarde y cambie el tamaño, o agregue o elimine un elemento.

0
Haleema 27 nov. 2021 a las 08:26

Para sumMethod, diría que lo primero que podría hacer es darle un valor de retorno en lugar de anular, es decir, public static double sumMethod. De esa forma, cuando ejecute ese método en main, podrá conservar el resultado que imprime. Puede que esté equivocado, pero tengo entendido que su objetivo es tomar una matriz y resumir los valores dentro, para eso, esta sería una forma de hacerlo.

public static double sumMethod(double[] arrayOfDoubles) {
    double total = 0;
    for (double num : arrayOfDoubles) {
        total += num;
    }
    return total;
}
0
Kyle_McFatter 27 nov. 2021 a las 08:04
Nuestro instructor nos restringió para que el método devolviera vacío, así como para que el método imprimiera todos los valores de la matriz.
 – 
Kaji
27 nov. 2021 a las 08:22