【问题标题】:How can I write Java code for average calculator如何为普通计算器编写 Java 代码
【发布时间】:2019-08-04 18:11:25
【问题描述】:

我是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; 
 }
}

【问题讨论】:

  • 输入通常作为方法的参数给出,例如average(int[] inputs)average(int... inputs).
  • 看起来很简单。你知道如何计算五个数字的平均值吗?
  • 欢迎来到 Stack Overflow! 您找到解决方案了吗?您需要更多帮助吗?如果有任何答案解决了您的问题,请考虑accepting it。这向更广泛的社区表明您找到了解决方案,并为回答者和您自己赢得了一些声誉。

标签: java average calculator


【解决方案1】:

这里有一个传统方式的示例:

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

【讨论】:

  • 规格说 5 个输入。这并没有按照规范预期的方式回答问题。此外,由于他是 java 初学者,他的任务不太可能是处理 a) varargs 和 b) 流。
  • 谢谢@gmanrocks。我通过解释如何使用它在哪里可以找到更多信息来改进答案。我认为知道有超越的东西总是好的。 作为软件开发人员,我们永远不会停止成为初学者
猜你喜欢
  • 2015-06-29
  • 1970-01-01
  • 2022-11-12
  • 2019-09-08
  • 1970-01-01
  • 2013-10-21
  • 1970-01-01
  • 1970-01-01
  • 2022-10-13
相关资源
最近更新 更多