【问题标题】:where is the return statement written when using a for loop and arrays in java在java中使用for循环和数组时写的return语句在哪里
【发布时间】:2020-05-07 20:53:55
【问题描述】:

这样代码我将输入从主方法发送到方法进行计算,我想再次返回数组值

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;
 }

这使得程序工作,但它给了我 0 用于 gross[i] 中的第一个数组

【问题讨论】:

  • 你有什么问题?返回值取决于您的输入...
  • 我不明白您要做什么...为什么您的初始解决方案会在 for 循环中返回? process_g 应该完成什么?
  • 您的意思是返回double 还是double[]
  • @Ecto 但它一直给我错误,说缺少返回语句,我试图编辑它并使它像那样
  • @robinsax process_g 是一种计算 (rate[i] * hours[i]) + overtime[i]; 的方法,我想返回该值并将其存储在数组中 gross[i]

标签: java arrays methods


【解决方案1】:

如果你想让你的方法返回一个双精度数组,那么它需要返回类型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);

【讨论】:

  • 出现了另一个问题,我得到了那个错误 找不到符号 符号是 gross,因为我正在使用此代码 output(emp_num, hours, rate, overtime, gross); 将返回的总值发送到另一个方法方法是public static void output(int emp_num, double hours[], double rate[], double overtime[], double gross[])
  • 听起来你有一个新问题,你应该用minimal reproducible example提出一个新问题。
猜你喜欢
  • 1970-01-01
  • 2016-01-19
  • 2017-11-17
  • 2011-08-17
  • 2014-08-28
  • 2020-10-07
  • 2019-10-07
相关资源
最近更新 更多