Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BlueJ/Java程序返回一个新数组,该数组包含其参数的按组件求和_Java_Bluej - Fatal编程技术网

BlueJ/Java程序返回一个新数组,该数组包含其参数的按组件求和

BlueJ/Java程序返回一个新数组,该数组包含其参数的按组件求和,java,bluej,Java,Bluej,下面的代码返回一个新数组,该数组包含其参数的组件式和(假设它们的长度相同),例如,如果输入数组是{0,1,2}和{2,2,3},那么输出将是{2,3,5},如果输入数组的元素数不同,则该方法应返回null public class Sum { public static double[] sum(double a[], double b[]){ if (a.length != b.length) return null; int[] s = new double

下面的代码返回一个新数组,该数组包含其参数的组件式和(假设它们的长度相同),例如,如果输入数组是{0,1,2}和{2,2,3},那么输出将是{2,3,5},如果输入数组的元素数不同,则该方法应返回null

public class Sum
{
    public static double[] sum(double a[], double b[]){

    if (a.length != b.length)
    return null;
    int[] s = new double[a.length];
    for(int i=0; i<a.length; i++)
    s[i] = a[i] + b[i];
    return s;
    }
 public static void main(String[] args) {
        //calling the method to seek if compiles
        double[] results = Sum.sum(new double[] {0,1,2} + {2,2,3});
        //printing the results
        System.out.println(java.util.Arrays.toString(results));
    }
}
公共类总和
{
公共静态双[]和(双a[],双b[]{
如果(a.长度!=b.长度)
返回null;
int[]s=新的双精度[a.长度];

对于(int i=0;i,代码中有两个问题:

  • +
    运算符仅允许用于基本数字类型。在这一行代码中:

    Sum.sum(new double[] {0,1,2} + {2,2,3});
    
    int[] s = new double[a.length];
    
    您正试图为
    双[]
    变量应用
    +
    运算符,这是不允许的,因此会出现异常。由于该方法已接受两个参数
    双[]
    ,然后使用逗号分隔两个
    双[]
    来发送它们:

    Sum.sum(new double[] {0,1,2}, new double[] {2,2,3});
    
  • 这行代码:

    Sum.sum(new double[] {0,1,2} + {2,2,3});
    
    int[] s = new double[a.length];
    
    不能用另一个基元类型的数组初始化基元类型的数组。
    int[]
    double[]
    是完全不同的类。因此,请更改变量的类型声明:

    double[] s = new double[a.length];
    
更多信息:


现在我收到另一条错误消息:行的不兼容类型:int[]s=new double[a.length];,我不知道我的语法错误在哪里。请提供一个可能的解释?您不能将int数组分配给double数组!@arkady-这很有效。试试看。因为我已经编写了
new double[]
在花括号之前,这里从来没有任何
int[]
。@Acemi-是的,这是一个单独的错误,我第一次读代码时没有看到。
s
必须是
double[]
,而不是
int[]