Java错误:参数的运算符未定义。为什么?

Java错误:参数的运算符未定义。为什么?,java,Java,在我下面的代码中,您会注意到在第30行和第37行,这两行代码 fahrenheit = (9.0/5)*(cel+32); celsius = (5.0/9)*(fahren-32);. 这些代码给了我一个错误“运算符-(or)+对于参数类型double[],int是未定义的”我只是在学习Java,这个问题是我必须为学校做的一个问题。我必须有两个方法(列出的方法),并且必须用已经构建的数组创建一个表。但是我不能再往前走了,因为我一直在得到上面的错误。我的方法有问题吗?我是否将

在我下面的代码中,您会注意到在第30行和第37行,这两行代码

    fahrenheit = (9.0/5)*(cel+32);

    celsius = (5.0/9)*(fahren-32);.
这些代码给了我一个错误
“运算符-(or)+对于参数类型double[],int是未定义的”
我只是在学习Java,这个问题是我必须为学校做的一个问题。我必须有两个方法(列出的方法),并且必须用已经构建的数组创建一个表。但是我不能再往前走了,因为我一直在得到上面的错误。我的方法有问题吗?我是否将数组传递给了错误的方法?我不知道我写方法的方式是否正确。所以我也希望有人能告诉我正确的方法

public class CelciusFahrenheit {
public static void main(String [] args){
    // creates array cel and fills it. 
    double[] cel = {
            40, 39, 38, 
            37, 36, 35, 
            34, 33, 32, 31
    };


    // creates array fahren
    double[] fahren = new double[90];

    // fills array fahren
    for (int i = 30; i < fahren.length; i++)
        fahren[i] = i + 1;

    // passes fahren to method
    FahrenheitToCelsius(fahren);

    // passes cel to method
    CelsiusToFahrenheit(cel);

    }

// Method CelsiusToFahrenheit start
public static double CelsiusToFahrenheit(double[] cel){
    double fahrenheit;
    fahrenheit = (9.0/5)*(cel+32);
    return fahrenheit;
    // Method CelsiusToFahrenheit end
}
// Method FahrenheitToCelsius start
public static double FahrenheitToCelsius(double[] fahren){
    double celsius;
    celsius = (5.0/9)*(fahren-32);
    return celsius;
    // Method FahrenheitToCelsius end
}
public class CelciusFahrenheit{
公共静态void main(字符串[]args){
//创建数组cel并填充它。
双[]单元={
40, 39, 38, 
37, 36, 35, 
34, 33, 32, 31
};
//创建数组fahren
double[]fahren=新的double[90];
//填充数组fahren
对于(int i=30;i

}
fahrenheit
是一个
double
数组,而不是
double
。你不能从中减去一个数字。
cel
也有同样的问题:它是一个双精度的数组,不能向其中添加数字。也许您想在数组中添加或减去一个元素?而不是数组本身。或者更可能:您希望将
double
作为参数传递,而不是
double[]

让我们一步一步走。首先,修复以下方法:

public static double CelsiusToFahrenheit(double cel) {
    double fahrenheit;
    fahrenheit = (9.0/5)*(cel+32);
    return fahrenheit;
}

public static double FahrenheitToCelsius(double fahren) {
    double celsius;
    celsius = (5.0/9)*(fahren-32);
    return celsius;
}
现在,您可以通过输入数组中的每个元素调用它们:

for (int i = 0; i < fahren.length; i++)
    System.out.print(FahrenheitToCelsius(fahren[i]) + " ");

System.out.println();

for (int i = 0; i < cel.length; i++)
    System.out.print(CelsiusToFahrenheit(cel[i]) + " ");
for(int i=0;i
让我们看看这个方法

public static double CelsiusToFahrenheit(double cel){ //These parameters.. nono
    double fahrenheit;
    fahrenheit = (9.0/5)*(cel+32); //Use all doubles (9.0/5.0)*(cel+32.0);
    return fahrenheit;
    // Method CelsiusToFahrenheit end <-- this makes no sense, read method name
}
public静态双CelsiusToFahrenheit(双cel){//这些参数..nono
双华氏度;
华氏=(9.0/5)*(cel+32);//使用所有双打(9.0/5.0)*(cel+32.0);
返回华氏温度;

//数组上未定义方法CelsiusToFahrenheit end
+
cel
fahren
均为
double[]
,因此您不能将
int
添加到其中任何一个。cel是一个数组,您不能将其相乘。是否尝试将该int添加到数组中的每个元素?好的。因此我从参数中删除了[]。现在,我在//将fahren传递给方法fahrenheittocentrics(fahren)时出错;//将cel传递给方法CelsiusToFahrenheit(cel);它对他们说的是“CelsiusToFahrenheit(double)类型中的方法CelsiusToFahrenheit不适用于参数(double[])”这与OP的问题有何不同?您仍在尝试向整数添加一个n数组请阅读注释。如果您无法将一和二拼合在一起,那么我真的不知道您为什么在这里。我已删除了这两个[]这只是为了你的方便。下次在发布一些愚蠢的回复之前,试着认真阅读答案。所以我不太明白一些事情。对我来说太简单了。(我可能只是在胡说八道)我想将数组传递到方法中,让每个元素都经历方法过程。我想这就是你说的。但是当我从(double[]fahren)等中删除[]时,我将数组传递到方法中的行会出错。”他们说方法CelsiusToFahrenheit(double)在类型中,CelciusFahrenheit不适用于参数(double[])”那么我应该把你提到的for循环放在哪里呢?再次感谢你的帮助和对我的展示。如果你愿意,你可以将整个数组传递给方法,但是你必须将循环移到方法内部。或者你可以按照我的建议,将一个
传递给方法,在外部执行循环,在你现在正在调用这些方法。不管怎样,你都必须在某个地方做一些循环来处理数组。明白了!!!!!现在我让它工作了。非常感谢。你太棒了!!!我希望我有你一半的聪明。再次感谢。@user2805621哦,没什么:)我的荣幸!