在Java中,如何从参数中包含数组的方法返回值?
我有这个代码,但它不工作在Java中,如何从参数中包含数组的方法返回值?,java,arrays,methods,Java,Arrays,Methods,我有这个代码,但它不工作 public class Trial { public static void main (String [] args) { int average; int m = 0; int [] nums = {1,6,8,9,10,60,72}; average = getAverage(int [] nums); } public static int getAverag
public class Trial
{
public static void main (String [] args)
{
int average;
int m = 0;
int [] nums = {1,6,8,9,10,60,72};
average = getAverage(int [] nums);
}
public static int getAverage(int [] a)
{
int sum = 0;
for(int i=0; i<a.length; i++)
sum = sum +a[i];
int avg = sum/a.length;
return avg;
}
}
公开课审判
{
公共静态void main(字符串[]args)
{
整数平均;
int m=0;
int[]nums={1,6,8,9,10,60,72};
average=getAverage(int[]nums);
}
公共静态int getAverage(int[]a)
{
整数和=0;
对于(int i=0;i更改方法调用:
average = getAverage(nums);
我看到两个问题:
average=getAverage(int[]nums)
应为average=getAverage(nums)
<函数返回一个<代码> int <代码>。您可能需要考虑使用浮点数学来计算结果。否则,您将截断最近的<代码> INT/COM>的答案。
avg
可以是浮点值,但您的实现将始终返回整数
考虑使用浮点值<代码>和> />代码>代码> AVG并将返回类型改为<代码>双 .< /P>删除调用中的声明,只需传递“NUMs”。此外,考虑使用表达式:<代码>为(int I:A){SUMP++I;} < /Cord> >是有效的!愚蠢的错误:(是的,我需要它是最接近的整数到最接近的整数?所以你需要做一个舍入或截断之类的事情,因为这行int avg=sum/a.length;当你得到一个浮点值时,可能会引发一个异常point@Mr.不,它不会抛出异常。它会悄悄地截断。@Mr.-整个事情都是整数数学,不可能出现异常由于“浮点”而引发。可能遇到的唯一一种异常是数组为空(除零)。可能会调用显式调用
Round()
(尽管需要强制转换一个或两个运算符)。感谢您的解释,我不知道它,它被称为显式,谢谢!
average = getAverage(int [] nums); //this is wrong
average = getAverage(nums); //this is right. Just sintaxis.