Java 方法结果类型

Java 方法结果类型,java,arrays,methods,Java,Arrays,Methods,在下面的代码中,方法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 (

在下面的代码中,方法
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;
}

您需要将
array1
声明为返回
double
。将其声明更改为:

public static double array1(int [] b ) {
void
函数--
void array1(…)
--不返回值

请注意,代码中还有另一个错误:

avarage = total / b.length;
上面使用整数除法,这意味着结果被截断为整数,然后才转换为
double
。若要修复,请将行更改为:

avarage = total / (double)b.length;
函数声明中设置了“结果类型”或“返回类型”。它只意味着调用函数后将返回什么类型的数据。您的函数应该如下所示:

public static double array1(int[] b) {
    double average;
    int total=0;
    for(int x:b){
        total +=x;
    }
    average = (double) total/b.length;

    return average;
}

这将在函数完成后返回平均值。因此,函数完成后,结果将与平均值的最终值保持相同。

返回类型为void意味着方法不返回任何内容。如果要在数组上预执行操作,但没有任何与该操作关联的值,则此选项非常有用。例如,假设您想交换数组中的第一个和最后一个元素,您可以编写如下方法(忽略必要的错误检查)

当您调用此方法时,您并不期望从中得到任何类型的结果,而是期望您的程序只处理业务并继续执行

在本例中,您实际上希望array1(int[])方法对程序的其余部分可用。您可以通过指定函数的返回类型来实现这一点,它告诉程序的其余部分您希望函数返回的信息类型。在您的情况下,您可以通过将方法声明更改为来实现这一点

public static double array1(int[] b){
    //the same method body
}

注意在这种情况下,单词double是如何在static之后插入的。这告诉调用函数,当它执行array1时,该方法将返回double类型的值。对比一下你之前说过的方法不会返回任何类型的信息。

所以如果我不将方法设置为双倍,它将被视为无效?@AhmadDawod:不会。您的代码未编译(
方法的返回类型缺失
)。
public static double array1(int[] b){
    //the same method body
}