【发布时间】:2011-09-09 08:44:40
【问题描述】:
我是学习 java 的新手,在学习一本书的教程时,我在线程 "main" java.lang.ArrayIndexOutOfBoundsException: 0 中收到了这个错误异常。我尝试从网上进行研究以了解更多信息关于错误,我找不到答案。更糟糕的是,当我尝试访问他们的网站时,该书的网站已不存在。
该计划是关于计算 2 类工人、工程师和技术人员的工资,包括加班工资,这是 2 位不同工人原始工资的 1.5 倍。 最长工作时间为 160 小时,额外工作时间触发加班率。
这是我写的代码:
class PayCalculator3 {
public static void main (String []args) {
final int maxNoOverTime = 160;
final double engineerHourlyPay = 30;
final double technicianHourlyPay = 25.5;
final double overTimeRate = 1.5;
int position = Integer.parseInt(args[0]);
int hoursWorked = Integer.parseInt(args[1]);
double salary;
salary =
(position == 0) ?
// employee is an Engineer
(hoursWorked <= maxNoOverTime) ?
// he did not work overtime
(hoursWorked * engineerHourlyPay)
:
// he worked overtime
((maxNoOverTime * engineerHourlyPay) + ((hoursWorked - maxNoOverTime) * (engineerHourlyPay * overTimeRate)))
: (position == 1) ?
// if employee is a Technician
(hoursWorked <= maxNoOverTime) ?
// he did not work Overtime
(hoursWorked * technicianHourlyPay)
:
// he worked overtime
((maxNoOverTime * technicianHourlyPay) + ((hoursWorked - maxNoOverTime) * (technicianHourlyPay * overTimeRate)))
:
//Employee Type unknown
-1;
String str = (salary != -1) ?
("This month's salary >> $" + salary)
:
("Who the heck are you?");
System.out.println(str);
}
}
非常感谢您的所有热心帮助:)
【问题讨论】:
-
你是如何调用程序的?包括您键入的实际命令行。如果你没有在命令行中包含任何参数,你会在
int position = Integer.parseInt(args[0]);得到这个。