繁体   English   中英

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

[英]how do I return when the method header looks like this?

只是一个抬头,这是一个班级。 我将介绍迄今为止我想出/完成的所有内容。

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

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

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

return value1;
return value2;

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


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

return value1;
return value2;

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

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

return array;

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

return new double[] {value1, value2};

正如pstanton的回答包括。

类似地,如果方法签名指定返回类型是,例如, HashMap<Integer, String> ,则每次编写return语句时,单词return必须后跟一些计算为HashMap<Integer, String>实例的内容。

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

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

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

return new double[]{value1, value2}  

然后访问你的变量,如:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM