Я новичок в Java, и нам поручено брать случайные значения массива и передавать их через метод, в котором он складывает их все для получения промежуточной суммы.

Для sumMethod я хотел бы взять каждое значение из всего индекса (заданного sizeOfArray) и сложить их вместе.

Спасибо!

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 Ноя 2021 в 07:58
1
Вы получаете значение с помощью arrayOfDoubles[index]. объявите переменную int sum = 0 вне foor loop, затем sum += arrayOfDoubles[i] внутри вашего for loop. в конце концов делайте с суммой то, что хотите.
 – 
Emad Ali
27 Ноя 2021 в 08:19
Это следует публиковать как ответ, а не как комментарий.
 – 
Code-Apprentice
27 Ноя 2021 в 08:29
@ Code-Apprentice извините за это, мне все еще неясно, какие должны быть ответы, а что такое комментарии, у меня была идея, что ответ должен быть полным длинным подробным объяснением, я вижу, что многие люди дают краткое описание в разделе комментариев.
 – 
Emad Ali
27 Ноя 2021 в 09:08

2 ответа

Лучший ответ
public static void sumMethod(double[] arrayOfDoubles) {
        double sum = 0;
        for (int j = 0; j < arrayOfDoubles.length; j++) {
            sum += arrayOfDoubles[j];
        }
    }

Это тоже сработает, если вы еще не знакомы с циклом for-each.

Кроме того, лучше использовать в цикле arrayOfDoubles.length на случай, если вы отредактируете код позже и измените размер, или добавите или удалите элемент.

0
Haleema 27 Ноя 2021 в 08:26

Что касается sumMethod, я бы сказал, что первое, что вы могли бы сделать, это дать ему возвращаемое значение, а не void, то есть общедоступный статический двойной sumMethod. Таким образом, когда вы запускаете этот метод в основном, вы можете сохранить результат, который он распечатает. Я могу ошибаться, но я понимаю, что ваша цель - взять массив и суммировать значения внутри, для этого это был бы способ сделать это.

public static double sumMethod(double[] arrayOfDoubles) {
    double total = 0;
    for (double num : arrayOfDoubles) {
        total += num;
    }
    return total;
}
0
Kyle_McFatter 27 Ноя 2021 в 08:04
Наш инструктор ограничил нас, чтобы метод возвращал void, а также выводил методом распечатки всех значений в массиве.
 – 
Kaji
27 Ноя 2021 в 08:22