我写得对吗?我一直在收集编译器错误

时间:2015-07-14 07:41:58

标签: java

我不确定我是否正确地写了这个。我已经检查了我的笔记,以确保使用了所有合适的符号,但我仍然遇到如下错误:';'预期而非声明。我错过了什么吗?

import 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;
    }
}

}

4 个答案:

答案 0 :(得分:5)

您的方法(例如showEmployees)不应该在主要方法中,并且在声明后不应该有分号:

更改

int showEmployees();
{
   ...
}

int showEmployees()
{
   ...
}

并将其移到主方法之外。

同样适用于getDaysaverageDays

您的方法似乎也缺少一些返回语句。每个执行路径都必须有一个return语句。例如,getDays仅在while循环内部具有return语句。在while循环之后必须至少再有一个return语句,以防从未输入while循环。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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