我制作了这个示例程序一段时间了,我正在弄清楚如何添加我在数组中输入的两个员工的工资总和。有什么建议吗?
import javax.swing.JOptionPane;
public class Sample {
public static void main (String[] args)
{
String Name;
int i, HoursWorked, Rate, Pay=0, TotalPay=0, GrandTotalPay=0;
int CivStatus=0, Single=500, Married=1000;
System.out.println("Name\t\t\t\tCivil Status Code\t\t\tPay");
int [] Employees = new int [2];
for (i=0; i<Employees.length; i++)
{
Name=JOptionPane.showInputDialog("Enter your name: ");
HoursWorked=Integer.parseInt(JOptionPane.showInputDialog("Enter hours worked: "));
Rate=Integer.parseInt(JOptionPane.showInputDialog("Enter hourly rate: "));
Pay=HoursWorked*Rate;
CivStatus=Integer.parseInt(JOptionPane.showInputDialog("Enter your civil status: \nEnter [1] if single.\nEnter [2] if married."));
if(CivStatus==1){
{
TotalPay=Pay-Single;
}
}
if(CivStatus==2){
{
TotalPay=Pay-Married;
}
}
GrandTotalPay=Employees[0]+Employees[1];
System.out.println(Name+"\t\t\t\t"+CivStatus+"\t\t\t\t\t"+Pay);
}
System.out.println("The sum of the pay is: "+GrandTotalPay);
}
}
答案 0 :(得分:1)
数组索引当您尝试访问阵列中不存在的内存位置时,会发生超出范围的异常。 你在
做同样的事情for (i=0; i<Employees.length; i++)
相反,做
apply plugin: 'com.google.gms.google-services'
答案 1 :(得分:1)
计算每笔付款后,将其添加到TotalPay。 像:
TotalPay = TotalPay + Pay;
或者,
TotalPay += Pay;
接下来,你实际上并没有在这里使用数组。如果要将Pays保留在数组中,则需要一个大小为2的数组。
int[] Employees = new int[2];
另一件事,当遍历一个数组时,这样做:
for(i = 0; i < Employees.Length; i++) {}
数组索引从0开始,然后上升到(size - 1),所以你不能在这里使用&lt; = Employees.Length。
答案 2 :(得分:0)
数组索引从0开始。如果要遍历所有元素,请使用从0到length的索引。
将i<=Employees.Length
更改为i<Employees.Length
答案 3 :(得分:0)
检查以下代码并进行更改。注意:将Pay
更改为数组以保留每位员工的工资
import javax.swing.JOptionPane;
public class Sample {
public static void main (String[] args)
{
String Name;
int i, HoursWorked, Rate, TotalPay=0, GrandTotalPay=0;
int CivStatus=0, Single=500, Married=1000;
System.out.println("Name\t\t\t\tCivil Status Code\t\t\tPay");
int [] Pay = new int [2];
int [] Employees = new int [2];
for (i=0; i<Employees.length; i++)
{
Name=JOptionPane.showInputDialog("Enter your name: ");
HoursWorked=Integer.parseInt(JOptionPane.showInputDialog("Enter hours worked: "));
Rate=Integer.parseInt(JOptionPane.showInputDialog("Enter hourly rate: "));
Pay[i]=HoursWorked*Rate;
CivStatus=Integer.parseInt(JOptionPane.showInputDialog("Enter your civil status: \nEnter [1] if single.\nEnter [2] if married."));
if(CivStatus==1){
{
TotalPay=Pay[i]-Single;
}
}
if(CivStatus==2){
{
TotalPay=Pay[i]-Married;
}
}
GrandTotalPay+=Pay[i];
System.out.println(Name+"\t\t\t\t"+CivStatus+"\t\t\t\t\t"+Pay[i]);
}
System.out.println("The sum of the pay is: "+GrandTotalPay);
}
}
感谢。