我的程序有一些我似乎无法解决的错误。当我运行我的程序时,确切地说有11个。
我遇到的主要错误是在第8行,它表示String无法转换为String []。 这就是它所说的
String[] empLastName="";
我还在第9行挣扎,说int无法转换为int [] 这就是它所说的
int[] workStartTime=0, workEndTime=0, totalTimeWorked=0;
第47行的错误表示二进制运算符的错误操作数类型' +' 这一行是
totalTimeWorked=(totalTimeWorked+hoursWorked[i]);
该计划本身应该提醒10名员工
last name
what time they started their work
(时间必须按小时输入,然后以军事时间分钟输入。例如,如果他们在2:20开始工作,则用户应该输入14小时和20分钟) `
what time they finished work
(也格式化为开始时间)。
我假设所有数据输入正确,员工在开始工作后完成工作,并且两次都在同一天。
该计划将确定每位员工当天工作的小时数。
它将输出格式良好的报告列表 `
all of the employees
along with the amount of time they worked
(列为小时和分钟),
也应该输出
the average amount of time worked
their last name
非常感谢任何帮助!
这是我写的 -
import java.util.Scanner;
public class EmployeeTime
{
public static void main(String[] args)
{
String[] empLastName="";
int[] workStartTime=0, workEndTime=0, totalTimeWorked=0;
String[] empLastNameArray= new String[empLastNameArray.length];
int[] workStartTimeArray= new int[workStartTimeArray.length];
int[] workEndTimeArray= new int[workEndTimeArray.length];
int[] avgHoursWorked= new int[avgHoursWorked.length];
readEmployeeData(empLastName, workStartTime, workEndTime);
determineHoursWorked(workStartTime, workEndTime, totalTimeWorked);
determineAverageHoursWorked(workStartTime, workEndTime);
writeHeadings();
printEmployeeInformation(empLastName, workStartTime, workEndTime);
}
public static void readEmployeeData(String[] empLastName, int[] workStartTime, int[] workEndTime)
{
System.out.println("enter how many students you would like to get the information");
Scanner input = new Scanner(System.in);
for(int i=0; i<10; i++)
{
System.out.println("Please enter your last name.");
empLastName[i]=input.next();
System.out.println("Please enter your work start time.");
workStartTime[i]=input.nextInt();
System.out.println("Please enter your work end time.");
workEndTime[i]=input.nextInt();
}
}
public static double[] determineHoursWorked(int[] workStartTime, int[] workEndTime, int[] totalTimeWorked)
{
double[] hoursWorked= new double[hoursWorked.length];
for(int i=0; i<hoursWorked.length; i++)
hoursWorked[i]= workEndTime[i]-workStartTime[i];
for(int i=0; i<hoursWorked.length; i++)
{
totalTimeWorked=(totalTimeWorked+hoursWorked[i]);
}
return hoursWorked;
}
public static double[] determineAverageHoursWorked(int[] workStartTime, int[] workEndTime)
{
double[] avgHoursWorked= new double[avgHoursWorked.length];
for(int i=0; i<avgHoursWorked.length; i++)
avgHoursWorked[i]= (totalTimeWorked/10);
return avgHoursWorked;
}
public static void writeHeadings()
{
System.out.printf("%s%25s%13s%16s\n\n", "Employees", "Amount of time worked", "Average amount of time worked");
}
public static void printEmployeeInformation(String[] empLastName, int[] hoursWorked, int[] avgHoursWorked);
{
for(int i=0; i<empLastName.length; i++)
System.out.printf("%-20s%9d%13.2f%16.2f\n", empLastName[i], hoursWorked[i], avgHoursWorked[i]);
}
}
答案 0 :(得分:0)
正如@Madprogramer所说你的问题是定义数组和设置值我建议看this link关于如何在java中声明和使用数组
答案 1 :(得分:0)
单个变量和数据类型数组之间存在差异。你必须像数组一样分配一个数组..例如..
分配空字符串数组
String arr[] = {};
定义整数
int arr[] = {};
答案 2 :(得分:0)
这是初始化String
变量
String empLastName="";
这是初始化String
数组变量的方法;
String[] empLastName= {""};
答案 3 :(得分:0)
您在此示例中尝试执行的操作是将数组X 转换为单数 X 。用鲍勃塔博尔的话来解释:
变量可以被认为是具有值的“桶”。当您说String s
时,您定义了一个“桶”,它可以容纳一个字符串值。
但是,数组是一个完全不同的问题。 数组是一个“存储桶”,用于存放其他存储桶。它可以被视为一串多个字符串,例如: “A”,“B”,“C”,“D”...... 等等。定义数组时,需要为其提供许多元素;这是不可改变的。一个包含五个项目的数组将始终包含五个项目。标准数组声明如下:
String[] s = new String[5];
s[1] = "A";
s[2] = "B";
等等。但是,请注意使用String[] s = {}
或= {""}
来定义数组的其他一些答案,因为这将为您提供一个只有一个的索引的数组,并且当您需要时持有多个项目,无论如何都需要重新创建它。