Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:0_Java_Exception Handling - Fatal编程技术网

“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:0

“线程中的异常”;“主要”;java.lang.ArrayIndexOutOfBoundsException:0,java,exception-handling,Java,Exception Handling,我是学习java的新手,在阅读一本书的教程时,我在线程“main”java.lang.ArrayIndexOutOfBoundsException中收到了此错误异常:0。我试着在网上寻找更多关于错误的信息,但我找不到答案。更糟糕的是,当我试图访问他们的网站时,这本书的网站已经不存在了 该计划涉及计算两类工人、工程师和技术人员的工资,包括加班工资,这是两种不同工人原始工资的1.5倍。 最大工作时间为160小时,额外的工作时间会触发加班率 以下是我编写的代码: class PayCalculator

我是学习java的新手,在阅读一本书的教程时,我在线程“main”java.lang.ArrayIndexOutOfBoundsException中收到了此错误异常:0。我试着在网上寻找更多关于错误的信息,但我找不到答案。更糟糕的是,当我试图访问他们的网站时,这本书的网站已经不存在了

该计划涉及计算两类工人、工程师和技术人员的工资,包括加班工资,这是两种不同工人原始工资的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);
    }
}
class PayCalculator3{
公共静态void main(字符串[]args){
最终int maxNoOverTime=160;
最终双工程师小时工资=30;
最终双技术员小时工资=25.5;
最终双倍超期率=1.5;
int position=Integer.parseInt(args[0]);
int hoursWorked=Integer.parseInt(args[1]);
双薪;
工资=
(位置==0)?
//雇员是工程师

(hoursWorked您不能向程序传递两个参数。在执行args[0]时,它需要一个通过命令行传递给程序的整数。请添加调用程序的方式

java PayCalculator3 10 10

根据上面的示例,您应该使用两个整数作为参数来调用它。

您不能向程序传递两个参数。在执行args[0]时,它需要一个通过命令行传递给程序的整数。请添加调用程序的方式

java PayCalculator3 10 10

根据上面的例子,您应该使用两个整数作为参数来调用它。

因此,基本上您必须在cmd中这样调用它,否则您将收到错误 i、 e.您没有输入参数。

因此,基本上,您必须进入并在cmd中这样调用它,否则您将收到错误 i、 e.您没有输入参数。

您是如何调用该程序的?包括您键入的实际命令行。如果您没有在命令行中包含任何参数,您将在
int position=Integer.parseInt(args[0]);
处获得该命令行。您是如何调用该程序的?包括您键入的实际命令行。您将在
int position=Integer.parseInt处获得该命令行(args[0]);
如果您没有在命令行中包含任何参数。非常感谢,我太傻了!调用程序时我没有输入参数。非常感谢,我太傻了!调用程序时我没有输入参数。是的,我调用程序时忘了输入参数。那就是我太傻了,非常感谢你的帮助!是的,我调用程序时忘了输入参数。我太傻了,非常感谢你的帮助!