2015-06-30 14 views
1

Я создал программу, но у меня есть проблема, и я не знаю, где, но она думает, что это int конверсия. Я хочу конвертировать из 2d в 1d. Поэтому у меня есть этот код:Преобразование 2D-массива в ошибку массива 1D

  System.out.print("\nEnter the employee's (1) Basic Pay (2) Housing Allowance (3) Travel Allowance (example: 4000 500 300): "); 
     salary_detail[0][employee_counter] = sc.nextDouble(); 
     salary_detail[1][employee_counter] = sc.nextDouble(); 
     salary_detail[2][employee_counter] = sc.nextDouble(); 
     net_salary[employee_counter]= salary_detail[1][employee_counter]+salary_detail[2][employee_counter]+salary_detail[3][employee_counter]; 

employee_counter 0 Поэтому в первую очередь я просматриваю номер. Но когда я хочу, чтобы собрать все эти цифры в другой массив 1d он не будет работать, и я получаю ошибку:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 
at project1.Project1.addRecord(Project1.java:90) 
at project1.Project1.main(Project1.java:48) 

Java Результат: 1

все это внутри метода так как могу я исправить это?

+0

Вы можете предоставить полный код, чтобы мы могли изучить его, что вы делаете. Что такое sc, whats the input, откуда вы его получаете. –

ответ

2

попробовать:

net_salary[employee_counter]= salary_detail[0][employee_counter]+salary_detail[1][employee_counter]+salary_detail[2][employee_counter];

Первый индекс массива равен 0, так что последний будет 2 вместо 3. Так как ваш массив имеет длину только 3, и вы пытаетесь получить доступ к вещь по индексу 3 (это на самом деле четвертый элемент), вы получаете java.lang.ArrayIndexOutOfBoundsException.

+0

Огромное спасибо, теперь его работа отличная благодарность –

+0

@AnmarMashat Нет проблем! Надеюсь, теперь вы поймете, что вы сделали неправильно ... Если бы это помогло вам, вы можете принять ответ. –