Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 0 - PullRequest
0 голосов
/ 06 июня 2011

Я новичок в изучении Java, и, следуя учебному пособию из книги, я получил это исключение ошибки в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 0. Я попытался исследовать сеть, чтобы узнать большеоб ошибке, и я не смог найти ответ на этот вопрос.Что еще хуже, веб-сайт книги больше не существует, когда я пытался перейти на их веб-сайт.

Программа предназначена для расчета платежей для 2 типов работников, инженеров и техников, включая выплаты со временем, что в 1,5 раза большеоригинальная зарплата для 2 разных работников.Максимальное рабочее время составляет 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);
    }
}

Заранее большое спасибо за вашу помощь:)

Ответы [ 2 ]

3 голосов
/ 06 июня 2011

Вы не должны передавать программе два аргумента.Там, где вы делаете args [0], он ожидает целое число, переданное программе через командную строку.Пожалуйста, добавьте, как вы вызываете программу.

java PayCalculator3 10 10

Вы должны вызывать ее с двумя целыми числами в качестве аргумента, как в примере выше.

1 голос
/ 06 июня 2011

так что в основном вы должны войти и вызвать это как таковое в вашем cmd или что бы вы ни использовали, иначе вы получите ошибки, т.е. вы не вводите параметры.enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...