0

只是提醒一下,这是为了上课。我将介绍到目前为止我已经弄清楚/完成的所有内容。

我得到了一个方法头,但我必须编写整个方法。这是标题:

public static double[] solveQuadraticEquation(double a, double b, double c){

正如你可能猜到的,我只需要写几行简单的行来使用二次方程求解 x。很容易。我感到困惑的是双精度后的 [] 。我假设这意味着返回类型是双数组?我该怎么写?我有两个要返回的双精度值,value1 和 value2。通常我会像这样返回它们:

return value1;
return value2;

在这种情况下会有什么不同?当我尝试以通常的方式返回两个值时,我收到错误“必需:双 [],找到:双”。


编辑:我是个白痴。我只需要将这两个值放入一个数组中。我猜这没有立即想到的原因是因为它似乎没有必要成为一个数组。

4

3 回答 3

1

What I'm confused about is the [] after double. I'm assuming that means the return type is a double array?

Yes double[] means your method is supposed to return a double array.

A method can only have a single return statement, thus you can't return the 2 values you want the way you did, instead you should try something like :

return new double[]{value1, value2}  

and later access your variables like :

double[] result = solveQuadraticEquation(a,b,c)
//result[0] now containts value1 and result[1] contains value2
于 2013-09-02T01:55:11.650 回答
1
return value1;
return value2;

那是行不通的,因为一旦代码到达一个return语句,就是这样,你的方法就完成了。

后面的内容return必须是方法签名中指定的类型。例如,如果方法签名指定返回类型为sdouble[]的数组double,则每次包含return语句时,它必须像

return array;

哪里array是一个双数组。它可以是一个类型的变量double[],即double在方法前面声明的数组,也可以是一些返回double数组的表达式,例如

return new double[] {value1, value2};

正如pstanton 的回答所包括的那样。

类似地,如果方法签名指定返回类型是,比如说,HashMap<Integer, String>每次你写一个return语句,这个词return后面必须跟一些计算为HashMap<Integer, String>实例的东西。

于 2013-09-02T01:49:12.407 回答
0

首先,您应该知道 double 与 double [] 不同,前者是前提数据类型,而后者是数组。

我建议你做的是创建一个新数组 double [] root = new double [2]; 并将两个根分别分配给根[0]和根[1]。然后返回该数组。

于 2013-09-02T01:47:53.037 回答