java方法结果类型
在下面的代码中,方法array1
不会返回avarage,因为它的返回类型是void
我知道void
的意思,但有人能向我解释什么是void结果类型以及如何使此方法返回avarage:
public class JavaApplication4 {
public static void main(String[] args) {
int[] a = {1,2,3,4};
double result = array1 (a);
}
public static array1 (int[] b) {
double avarage;
int total = 0;
for (int x:b) {
total += x;
}
avarage = total / b.length;
return avarage;
}
# 1 楼答案
您需要将
array1
声明为返回double
。将其声明更改为:void
函数void array1(...)
不返回值请注意,代码中还有另一个错误:
上面使用整数除法,这意味着结果被截断为整数,然后才转换为
double
。若要修复,请将行更改为:# 2 楼答案
函数声明中设置了“结果类型”或“返回类型”。它只意味着调用函数后将返回什么类型的数据。您的函数应该如下所示:
这将在函数完成后返回平均值。因此,在函数完成后,结果将与平均值的最终值保持相同
# 3 楼答案
返回类型void表示方法不返回任何内容。如果要在数组上预执行操作,但没有任何与该操作关联的值,则此选项非常有用。例如,假设您想交换数组中的第一个和最后一个元素,您可以编写如下方法(忽略必要的错误检查)
当您调用此方法时,您并不期望从中得到任何类型的结果,而是期望您的程序只处理业务并继续执行
在本例中,您实际上希望array1(int[])方法对程序的其余部分可用。您可以通过指定函数的返回类型来实现这一点,它告诉程序的其余部分您希望函数返回的信息类型。在您的情况下,您可以通过将方法声明更改为来实现这一点
注意在这种情况下,单词double是如何在static之后插入的。这告诉调用函数,当它执行array1时,该方法将返回double类型的值。对比一下你之前说过的方法不会返回任何类型的信息