где оператор возврата, записанный при использовании для l oop и массивов в java - PullRequest
0 голосов
/ 07 мая 2020

, поэтому я отправляю входные данные из основного метода в метод для вычисления, и я хочу снова вернуть значения массива

gross[i] = process_g(rate, hours, overtime, emp_num);

и в методе process_g я написал, что

 public static double process_g(double rate[], double hours[],double overtime[], int emp_num)
 {
  for(int i = 0; i < emp_num; i++)
  {
   return (rate[i] * hours[i]) + overtime[i];
  }
 }

, но он продолжает выдавать мне ошибку, что отсутствует оператор возврата, и я попытался отредактировать его и сделать его таким

 {
  double ret = 0;
  for(int i = 0; i < emp_num; i++)
  {
   ret = (rate[i] * hours[i]) + overtime[i];
  }
  return ret;
 }

, который заставил программу работать, но дает me 0 для первого массива в gross[i]

1 Ответ

0 голосов
/ 08 мая 2020

Если вы хотите, чтобы ваш метод возвращал массив double, тогда он должен иметь тип возвращаемого значения double[], и вам нужно написать оператор return, который возвращает массив, а не одно значение.

Может быть, вам нужно что-то вроде этого:

public static double[] process_g(double rate[], double hours[],
                                 double overtime[], int emp_num) {
    double[] result = new double[emp_num];
    for (int i = 0; i < emp_num; i++) {
        result[i] = (rate[i] * hours[i]) + overtime[i];
    }
    return result;
}

Тогда вы можете использовать это так:

double[] gross = process_g(rate, hours, overtime, emp_num);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...