我是Java的新生(我在家里自学),我试着从这段代码开始我不能解决这个练习,问题是:
“假设你有五个输入值和”平均“方法,计算平均方法中五个输入值的平均值并返回它”这是代码:
public class MyCalculator {
int input1 = 10;
int input2 = 20;
int input3 = 30;
int input4 = 40;
int input5 = 50;
public float average() {
// TODO: write java code to calculate the average for all input variables
return 0;
}
}
这里有一个传统方式的例子:
public float average(int... inputs) {
long sum = 0;
for (int i : inputs) {
sum += i;
}
if (inputs.length == 0) {
return 0;
} else {
return (float) sum / inputs.length;
}
//return inputs.length == 0 ? 0 : (float) sum / inputs.length;
}
请注意投射到
(float)
的重要性,如下所述:Integer division to float result。
这里以最优雅的Java 8方式:
public float average(int... inputs) {
return (float) Arrays.stream(inputs).average().orElse(0);
}
您可以查看Java 8 Stream and operation on arrays以获得更好的解释和其他示例。
最后,您可以像这样使用它:
float result = average(input1, input2, input3, input4, input5);
另外,你可能想看一下这篇文章:Java, 3 dots in parameters。