【问题标题】:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0线程“主”java.lang.ArrayIndexOutOfBoundsException 中的异常:0
【发布时间】: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]); 得到这个。

标签: java exception-handling


【解决方案1】:

您不能将两个参数传递给程序。在您执行 args[0] 的地方,它期望通过命令行传递给程序的整数。请添加您调用程序的方式。

java PayCalculator3 10 10

您应该使用两个整数作为参数来调用它,如上例所示。

【讨论】:

  • 非常感谢,我太傻了!调用程序时我没有输入参数。
【解决方案2】:

所以基本上你必须进入并在你的 cmd 中调用它,或者你正在使用什么,否则你会收到错误 即你没有输入参数。

【讨论】:

  • 是的,我在调用程序时忘记输入参数了。我太傻了,非常感谢你的帮助!
猜你喜欢
  • 2014-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-06
  • 1970-01-01
  • 2023-03-29
  • 2012-04-06
相关资源
最近更新 更多