【问题标题】:Return array method, error [closed]返回数组方法,错误[关闭]
【发布时间】:2014-06-19 08:32:46
【问题描述】:

我正在尝试编写一个将两个数组作为参数的方法,然后返回它们的总和。但是我有两个问题,首先我现在有错误,说类型不兼容,并且在 return s 处显示错误。另一个问题是如果一个数组比另一个数组短,如何将 0 值添加到另一个数组中。

干杯。

public class Question1d{
    public static void main (String [] args){
        double[] v = {1, 2, 3, 4, 5};
        double[] w = {5, 4, 3, 2, 1};
        double[] s;     
    }

    public static double add(double[] v, double[] w){
        int a;
        if (v.length >= w.length){
            a = v.length;
        }
        else{
            a = w.length;
        }
        double[] s = new double[a];
        for(int i = 0; i<=a; ++i){
            s[i] = v[i] + w[i];
        }
        return s;
    } 
}

【问题讨论】:

  • 什么是s?你的方法的返回类型是什么?错误消息告诉您什么(完整消息)?
  • 尝试Java Tutorials 从头开始​​。我建议您下载它们以按照您自己的进度学习。当您认为自己已经掌握了基础知识时,请返回 SO。

标签: java arrays methods return


【解决方案1】:

您已将方法声明为返回 double(单个值)而不是 double[](值数组)。

要处理零值,请计算出最短和最长数组的长度。

将结果数组声明为最长的长度。

循环从 0 到最短的值相加。

从最短到最长的循环只是从较长的数组中复制值。

【讨论】:

  • 首先很抱歉如果我打扰了你,但我要返回s。你能告诉我更确切的错误在哪里吗
  • 你的方法签名是public static double add(...)。它必须是public static double[] add(...),因为s 的类型是double[] 而不是double。
【解决方案2】:

您返回的是double[],而不是您所说的double。

【讨论】:

    【解决方案3】:

    请检查更新的代码。您需要在方法中将返回类型作为数组提及。

    public class Question1d{
        public static void main (String [] args){
            double[] v = {1, 2, 3, 4, 5};
            double[] w = {5, 4, 3, 2, 1};
            double[] s;  
            for(double d:Question1d.add(v, w))
            System.out.println(d);
        }
    
        public static double[] add(double[] v, double[] w){
            int a;
            if (v.length >= w.length){
                a = v.length;
            }
    
            else{
                a = w.length;
            }
            double[] s = new double[a];
            for(int i = 0; i<a; ++i){
    
                s[i] = v[i] + w[i];
            }
            return s;
        } 
    }
    

    2.无法更新任何数组的大小。

    【讨论】:

      猜你喜欢
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-02
      • 2019-07-26
      • 2014-01-30
      相关资源
      最近更新 更多