java - 预期的 java 标识符

标签 java methods average identifier

我不断收到编译器错误,指出需要标识符,其中代码显示 public static String Mainmenu (menu);。我是编程新手,所以我知道这可能很简单。该代码使用方法,当所有内容都正确编译时,它应该作为成绩平均程序运行。

import java.util.Scanner;

public class Homework4 {

public static void main( String[] args )
{
    Scanner input = new Scanner( System.in );
    int choice;
    String name;
    String menu1;
    double homeworkAverage = 0.0;
    double quizAverage = 0.0;
    double testAverage = 0.0;
    double average = 0.0;
    double totalAverage = 0.0;

    do{

        menu1 = Mainmenu;

        choice = input.nextInt();

        if( choice == 1 )
        {

            System.out.println( "Eneter the student's name:");

                name = input.next();

            System.out.println( "Enter homework grades");

                homeworkAverage = mean();

            System.out.println( "Enter Quiz Grades");

                quizAverage = mean();

            System.out.println( "Enter Test Grades");

                testAverage = mean();

            totalAverage = 0.25*homeworkAverage + 0.25*quizAverage +0.5*testAverage;

            System.out.println( "The average for " + name + " is: " + totalAverage );

            }
            else if ( choice == 2 )
            {
                System.out.println( "Now quiting...");
            }
            else
            {
                System.out.println( "Invalid Choice" );
            }


    }while( choice != 2 );
}


public static String Mainmenu ( menu );
{

    Scanner input = new Scanner( System.in );

    String menu;


        System.out.println("Welcome to Grader 1.0");
        System.out.println("1. Average a New Student");
        System.out.println("2. Quit");
        System.out.println("Please Enter Your Choice:");


        return menu;

}



public static double mean(double average );
{

Scanner input = new Scanner( System.in );

double grade = 0.0; 
double average = 0.0;
double gradeTotal = 0.0;
int numberOfGrades = 0;

while( grade != -1 )
{

    System.out.println( "Please enter the next grade or -1 when finished: "); 
    grade = input.nextDouble ();

    if( grade != -1 )
    {
        gradeTotal = gradeTotal + grade;
        numberOfGrades++;
    }

}
    if( numberOfGrades > 0 )
        {

        average = gradeTotal / numberOfGrades;

        }
        else
        {
            System.out.println("No grades, no average");
        }   

            return average; 


}
}

最佳答案

删除 public static String Mainmenu ( menu ); 之后的 ;

public static doublemean(doubleaverage ); 之后的 ; 运算符相同

问题是您正在尝试定义方法,而 ; 运算符意味着语句结束。由于您在方法签名之后终止,因此这些方法不会提供主体 block 。

请注意,您可以在方法主体之后添加 ;但不能在方法签名和主体之间添加。例如,

public void myMethod() {
  //body
};

关于java - 预期的 java 标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19202168/

相关文章:

java - 按钮一个接一个地工作,而不是同时工作

java - 需要对这种通用类型进行简要描述

sql - 获取 TIME(7) 的平均值

Python:查找每个月的平均股票值(value)

sql - SQL Server 中的 AVG 和 COUNT

java.lang.IllegalStateException : Required view 'caption' with ID 2131230791 for field 'caption' was not found

java - Spark 2.1.0 - SparkML 要求失败

java - 卡片布局显示错误的面板

java - 删除数组列表中的项目

java - 如何从 tomcat 提供静态内容