只是一个抬头,这是一个班级。我将介绍到目前为止我已经想到/完成的所有内容。
我得到了一个方法标题,但我必须编写整个方法。这是标题:
public static double[] solveQuadraticEquation(double a, double b, double c){
正如你可能猜到的那样,我只需要写一些使用二次方程求解x的简单线。很容易。我很困惑的是双倍之后的[]。我假设这意味着返回类型是一个双数组?我该怎么写呢?我有两个我想要返回的double值,value1和value2。通常情况下,我会将它们归还:
return value1;
return value2;
在这种情况下会有什么不同?当我尝试以通常的方式返回两个值时,我得到错误“required:double [],found:double”。
答案 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]。然后返回那个数组。