当方法标题看起来像这样时我该如何返回?

时间:2013-09-02 01:42:30

标签: java methods

只是一个抬头,这是一个班级。我将介绍到目前为止我已经想到/完成的所有内容。

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

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

正如你可能猜到的那样,我只需要写一些使用二次方程求解x的简单线。很容易。我很困惑的是双倍之后的[]。我假设这意味着返回类型是一个双数组?我该怎么写呢?我有两个我想要返回的double值,value1和value2。通常情况下,我会将它们归还:

return value1;
return value2;

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


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

3 个答案:

答案 0 :(得分:1)

return value1;
return value2;

这不起作用,因为一旦代码命中一个return语句,就是这样,你的方法就完成了。

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

return array;

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

return new double[] {value1, value2};

正如pstanton's answer所示。

同样,如果方法签名指定返回类型,例如HashMap<Integer, String>,则每次编写return语句时,单词return必须后跟一些评估为HashMap<Integer, String>实例。

答案 1 :(得分:1)

  

我很困惑的是双倍之后的[]。我假设这意味着返回类型是一个双数组?

是double []表示你的方法应该返回一个双数组。

一个方法只能有一个return语句,因此你不能按照你想要的方式返回2个值,而应该尝试类似的方法:

return new double[]{value1, value2}  

稍后访问您的变量,如:

double[] result = solveQuadraticEquation(a,b,c)
//result[0] now containts value1 and result[1] contains value2

答案 2 :(得分:0)

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

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