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
}