java - BlueJ/Java 程序返回一个新数组,其中包含其参数的组件总和

标签 java bluej

以下代码返回一个新数组,其中包含其参数的分量总和(假设它们的长度相同),例如,如果输入数组为 {0,1,2} 和 {2,2,3},则out out 将为 {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));
    }
}

正如我之前提到的,通常当我运行上面的程序代码时,我应该得到 {2,3,5} 结果,但我什么也没得到。事实上,我无法在 BlueJ 中编译它,我不断收到错误消息:非法开始该行的表达式: double[] results = Sum.sum(new double[] {0,1,2} + { 2,2,3});

所以我假设我犯了语法错误,但我不太确定,我怎样才能摆脱它,有什么建议吗?

最佳答案

您的代码中有两个问题:

  • +仅允许对原始数字类型使用运算符。在这行代码中:

    Sum.sum(new double[] {0,1,2} + {2,2,3});
    

    您正在尝试申请 + double[] 的运算符变量,这是不允许的,从而得到异常。由于该方法已经接受 2 个参数 double[] ,然后发送 double[] s,使用逗号 , 分隔它们.:

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

    int[] s = new double[a.length];
    

    不能用另一个基本类型的数组来初始化一个基本类型的数组。 int[]double[]是完全不同的类。因此,请更改变量的类型声明:

    double[] s = new double[a.length];
    

更多信息:

关于java - BlueJ/Java 程序返回一个新数组,其中包含其参数的组件总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397622/

相关文章:

java - 如何修复我的 super 报表?

Java:当 URL 请求身份验证时从 URL 下载文件

java - Mockito - 如何模拟接收参数的方法 - (Object...o)

java - 实际和形式参数列表长度不同错误

java - 我试图弄清楚如何在纸牌游戏课上处理牌组中的牌

java - 直到鼠标悬停或最小化窗口后,JComponent 才会出现,并且 JTextField 问题

java - java中如何忽略空格和空行

Java - 获取方法上的锁获取

java - 在多个 jar 文件中重新声明接口(interface)

java - 为什么我的 if 条件比较字符串失败?