Я являюсь абсолютным новичком для Java. Недавно я начал писать код в Java, чтобы отсортировать 5 элементов массива. Пользователь вводит элементы массива. Он соответствует коду и запускает программу. но как только я закончу ввод элементов массива, программа выйдет из строя! Вот мой код:java.lang.ArrayIndexOutOfBoundsException при сортировке массива
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int[] arr;
arr = new int[5];
System.out.println("Enter the 5 elemnts in the array");
for(int i=0; i<5; i++)
arr[i] = in.nextInt();
int temp;
for(int i=0; i<5; i++)
{
temp = arr[i+1];
for(int j=i+1; j>=0; j--)
{
if(arr[i] > temp)
{
arr[j] = temp;
arr[i] = arr[j];
}
}
}
}
}
он выдает ошибку, которая что-то вроде: Исключения в потоке «основной» java.lang.ArrayIndexOutOfBoundsException: 5 в Main.main (Main.java:16) я просто не могу прочитать и понять ошибку!
ли вы смотрите на документация для ['ArrayIndexOutOfBoundsException'] (http://docs.oracle.com/javase/8/docs/api/java/lang/ArrayIndexOutOfBoundsException.html)? Я предлагаю вам сделать это и прочитать учебное пособие [arrays tutorial] (http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html). Затем подумайте о значении 'i + 1' для всех значений' i', которые вы будете использовать ... –
Спасибо, я нашел его полезным :) – 2014-08-28 20:12:59
Я бы тоже привык к чтению ошибки. Сначала это кажется подавляющим, но оно должно * точно указать, что вам нужно делать. Фраза 'Main.Java: 16' сообщает вам строку, в которой включена ошибка, и имя исключения' ArrayIndexOutOfBounds' сообщает вам, что число в массиве, к которому вы пытаетесь получить доступ, не существует. – Yann