如何调用Java主要方法之外的方法



i有一个平均主要方法之外的方法。在主的末尾,我正在呼吁该平均方法。我不理解以下方式1.使用我声明的变量与此程序中的其他方法。例如,在计算_average方法中定义的总和。或者主方法中定义的总和。

请告诉我

  1. 如何互换变量进入和流入主要方法。在不是主要的方法之间互换。

  2. 在Main外部使用Main以外的方法来计算平均值。

这是我当前的代码。

import java.util.ArrayList;
import java.util.Scanner;
class programTwo
{
    private static Double calculate_average( ArrayList<Double> myArr )
    {
        Double Sum = 0.0;
        for (Double number: myArr)
        {
            Sum += number;
        }
    }
    public static void main( String[] args )
    {
        Scanner scan = new Scanner(System.in);
        ArrayList<Double> myArr = new ArrayList<Double>();
        double Sum = 0;
        int count = 0;
        System.out.println("Enter a number to be averaged, repeat up to 20 times:");
        String inputs = scan.nextLine();
    while (!inputs.matches("[qQ]") )
    {
        if (count == 20)
        {
            System.out.println("You entered more than 20 numbers, you suck!");
            break;
        }
        Scanner scan2 = new Scanner(inputs); // create a new scanner out of our single line of input
        myArr.add(scan2.nextDouble());
        count += 1;
        System.out.println("Please enter another number or press Q for your average");
        inputs = scan.nextLine();
    }
    Double average = calculate_average(myArr);
    System.out.println("Your average is: " + average);
    return Sum / myArr.size();
}}

您在 main的末尾有一个:

return Sum / myArr.size();

您需要将其移至calculate_average

private static Double calculate_average( ArrayList<Double> myArr )
{
    Double Sum = 0.0;
    for (Double number: myArr)
    {
        Sum += number;
    }
    return Sum / myArr.size();
}

鉴于mainvoid,即使不是,平均也没有任何意义,即使不是出口代码,我假设这是某种印刷错误。

一些代码评论

  • 本地变量应从较低的案例字母开始。所以sum,而不是Sum
  • 您可以使用原始double而不是Double对象。使用对象会导致拳击/拆箱开销。
  • 将您的 while循环及其内容缩进又有四个空间,因此循环开始垂直与上面的代码对齐,因为它在同一块中(方法的块)。
  • 将最后2个括号分为单独的线
  • 与匹配的打开括号垂直将最后两个括号对齐
  • 您是从创建calculate_average方法开始的,但继续分解main。它太长了。那里太多了。
  • if (count == 20)更改为if (count >= 20)。然后很难弄乱。

我认为您有静态方法,因此,您可以使用 className.methodname 直接调用再见。

只是将您的方法声明为公开,您也可以在外面打电话。

 programTwo.calculate_average(myArr)

无需创建对象来调用静态方法。

我的代码没有什么看不到的,除了您缺少 calculate_average方法中的返回语句

另外,如果您命名了方法calculate_average,则应返回平均而不是 sum

尝试以下操作:

private static Double calculate_average( ArrayList<Double> myArr )
{
    Double sum = 0.0;
    for (Double number: myArr)
    {
        sum += number;
    }
    return sum/myArr.size(); // added return statement
}

相关内容

  • 没有找到相关文章

最新更新