【问题标题】:Calling methods with parameters in Java在 Java 中调用带参数的方法
【发布时间】:2015-05-01 14:56:17
【问题描述】:

所以我必须在课堂上编写一个程序,但我遇到了一些麻烦。 我必须调用有参数的examAverage 方法,但我不知道该怎么做。另外,在用户提示方法中,我必须在 main 中创建一个循环,调用用户提示方法并要求用户输入他们的考试分数 3 次以获得平均分。我希望我解释得很好。我不太擅长编程。

package project5;

import java.util.*;

public class Project5 {

    static final int NUM_EXAMS = 3;

    static Scanner console = new Scanner(System.in);

    public static void main(String[] args) {

        //declare variable       
        double Average;
        double examScore1 = 0;
        double examScore2 = 0;
        double examScore3 = 0;

        double Average = examAverage(examScore1, examScore2, examScore3) / NUM_EXAMS;
        printWelcome();
        userPrompts();
        display();

    }

    static void printWelcome() {
        System.out.println("Welcome to the Exam Average Calculator");
    }

    public static void userPrompts() {
        System.out.println("Please enter your 1st exam score.");
        double examScore1;
        examScore1 = console.nextDouble();
        System.out.println("Please enter your 2nd exam score.");
        double examScore2;
        examScore2 = console.nextDouble();
        System.out.println("Please enter your 3rd exam score.");
        double examScore3;
        examScore3 = console.nextDouble();
    }

    public static void display() {
        double examAverage = 0;

    }

    public static double examAverage(double examScore1, double examScore2, double examScore3, double sum, double NUM_EXAMS) {
        double Average;

        sum = examScore1 + examScore2 + examScore3;

        Average = (double) sum / NUM_EXAMS;

        return Average;

    }

    public static void displayAverage(double Average) {
        Object[] examAverage = null;

        System.out.println("Your exam average is  %.2f%", examAverage);

    }

    public static double examAverage(double examScore1, double examScore2, double examScore3) {
        double Average;
        {
            return double Average

【问题讨论】:

  • 我必须在 main 中创建一个循环,调用用户提示方法并要求用户输入他们的考试分数 3 次你试过什么?
  • 这里似乎有多个问题。尝试将它们分成单独的问题。哪一行代码有问题?您在哪里尝试调用 examAverage 函数并失败? 调用函数或实现函数有问题吗?你得到一个编译错误?如果是这样,它是什么?还是运行时错误?

标签: java loops methods


【解决方案1】:

我不想为你做作业,但你在代码中多次调用带有参数的方法。例如在您的主目录中:

examAverage(examScore1,examScore2,examScore3)

您调用examAverage 方法并传入3 个变量。你的三个变量都设置为0,所以这没有意义。您可能应该在调用examAverageMethod 之前调用您的userPrompts 来初始化您的考试分数。

您的程序看起来差不多完成了,请考虑一下您希望如何执行它的顺序。祝你好运

【讨论】:

    【解决方案2】:

    因此,您的考试平均功能完全搞砸了,您想要的是参加考试次数和各个值并返回平均值。 所以你制作这样的函数是因为你不需要 sum 作为参数。

    public static double examAverage(double examScore1, double examScore2, double examScore3, double NUM_EXAMS) {
        double Average;
    
        double sum = examScore1 + examScore2 + examScore3;
    
        Average = sum / NUM_EXAMS;
    
        return Average;
    
    }
    

    所以当你调用这个函数时,你需要给它4个值

    这样称呼吧

    double Average = examAverage(examScore1, examScore2, examScore3, 3);
    

    这应该可以解决您的功能问题。如果我解释得不够清楚,或者您想让我详细说明,请告诉我。

    您还对调用代码的顺序有疑问。 首先,您想欢迎用户,然后您想询问他们的值,然后您想使用这些值来计算平均值,然后您想打印该平均值,所以改为这样做。

            //declare variable       
        double Average;
        double examScore1 = 0;
        double examScore2 = 0;
        double examScore3 = 0;
    
    
        //Welcomes user, then prompts for exam values, calculates average using those values, and finally displays the average
        printWelcome();
        userPrompts();
        double Average = examAverage(examScore1, examScore2, examScore3, 3);
        System.out.println("your average is" + Average)
    

    另外,删除你的 Display() 和 DisplayAverage() 函数,它们没用。

    【讨论】:

      【解决方案3】:

      方法是通过在类级别定义来调用静态变量,例如:

      private static double examScore1 = 0;
      private static double examScore2 = 0;
      private static double examScore3 = 0;
      

      其他最好的方法是将所有这些变量包装在一个类中(或者更好地创建一个列表/数组)并在 userPrompts 方法中传递该调用并填充它,然后使用相同的对象计算平均值。

      关于循环,你可以这样做:

      create a counter and initialize it with 0.
      while count <= 3
      do
           ask input from user
           calculate average
           display the average
      done
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-10-14
        • 2013-07-17
        • 2012-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-23
        相关资源
        最近更新 更多