【问题标题】:Did i write this correctly? I keep on getting compiler errors我写对了吗?我不断收到编译器错误
【发布时间】:2015-07-14 07:41:58
【问题描述】:

我不确定我写的是否正确。我检查了我的笔记以确保使用了所有适当的符号,但我不断收到错误,例如:';'预期而不是声明。我错过了什么吗???

导入 java.util.Scanner;

公共类 EmployeeAbsences { public static void main(String[] args) {

Scanner keyboard = new Scanner (System.in);

employees = showEmployees();
totaldays = getDays(employees);
average = averageDays(employees, totaldays);

System.out.print("Your employees averaged " + average + " days absent.");


int showEmployees();

{
    int employees;

    System.out.print("How many employees do you have?");
    employees = keyboard.next.Int();

    while (employees > 0)
    {
        if (employees < 0) {
            System.out.print("Please enter a positive number.");
        }
        else
            {
                return employees;
            }
    }


}

int getDays(int employees);

{
    int totaldays = 0;
    int days;

    for (int x = 0; x <= days; x++)
    {
        System.out.print("How many days was Employee #" + x + " absent?");
        days = keyboard.next.Int();
        totaldays = days;
        totaldays = totaldays += days;
    }

    while (days > 0)
    {
        if (days < 0) { 
            System.out.print("Please enter a positive number."); 
        }
        else 
            {
                return totaldays;
            }
    }

}

double averageDays(employees, totaldays) 

{
    int totaldays;
    int employees;
    double average;

    average = totaldays/employees;
    {
        return average;
    }
}

}

【问题讨论】:

  • 这里是错误int showEmployees();删除;
  • 请不要以使答案无效的方式更新您的问题。还要仔细检查代码格式是否正确。

标签: java


【解决方案1】:

您的方法(例如 showEmployees)不应在 main 方法中,并且它们的声明后不应有分号:

改变

int showEmployees();
{
   ...
}

int showEmployees()
{
   ...
}

并将其移到 main 方法之外。

这同样适用于getDaysaverageDays

您的方法似乎也缺少一些返回语句。每个执行路径都必须有一个返回语句。例如,getDays 仅在 while 循环内有一个 return 语句。在 while 循环之后必须至少还有一个 return 语句,以防永远不会进入 while 循环。

【讨论】:

    【解决方案2】:

    int averageDays(employees, totaldays); 等中删除分号。

    【讨论】:

      【解决方案3】:

      对于您编写的每个方法,您都应该省略 ; ,例如:

       int showEmployees()
          {
              int employees;
      
              System.out.print("How many employees do you have?");
              employees = keyboard.next.Int();
      
              while (employees > 0)
              {
                  if (employees < 0) {
                      System.out.print("Please enter a positive number.");
                  }
                  else
                      {
                          return employees;
                      }
              }
          }
      

      【讨论】:

        【解决方案4】:
        1. 从所有方法声明中删除分号
        2. 在开头声明employeestotaldaysaverage的类型
        3. 大多数函数在 de while 中都有返回值,你应该返回一些东西,如果它没有进入 while 语句。
        4. averageDays 函数返回一个 double 但它在声明中说它返回一个 int
        5. getDays函数中需要初始化days变量

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-11-28
          • 2015-09-12
          • 2014-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-02-18
          相关资源
          最近更新 更多