我不确定我是否正确地写了这个。我已经检查了我的笔记,以确保使用了所有合适的符号,但我仍然遇到如下错误:';'预期而非声明。我错过了什么吗?
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;
}
}
}
答案 0 :(得分:5)
您的方法(例如showEmployees
)不应该在主要方法中,并且在声明后不应该有分号:
更改
int showEmployees();
{
...
}
到
int showEmployees()
{
...
}
并将其移到主方法之外。
同样适用于getDays
和averageDays
。
您的方法似乎也缺少一些返回语句。每个执行路径都必须有一个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)
employees
,totaldays
和average
的类型
while
中都有返回值,如果它没有进入while
语句,你应该返回一些东西。averageDays
函数返回double
但它在声明中声明它返回int
getDays
函数中,您需要初始化days
变量