Member 13358597 Ответов: 2

Я хочу отсортировать элементы массива в порядке возрастания.я не могу понять ошибку " исключение в потоке main java. lang.arrayindexoutofboundexception:12 at sort_array. main(sort_array. java:20)


Я хочу отсортировать элементы массива в порядке возрастания.Ниже приведен мой java-код, я не могу понять ошибку " исключение в потоке main java.lang.ArrayIndexOutOfBoundsException: 12 at Sort_array. main(Sort_array. java:20)"

Что я уже пробовал:

импорт Java.математика.*;
класс Sort_array
{
public static void main(String args[])
{
int arr[] = new int[12];
int i=0, j = 0, temp;
Системы.из.печати("фактический массив ");
для(i=0;i< 10; i++)
{
arr[i] = (int) (Math. random ()*100);
Системы.из.печати(ОБР[я]+" ");
}
Системы.из.код println();
Системы.из.печати("отсортированный массив ");
для (i=0;i<=arr. length;i++)
{
для (j=i+1;j<=arr. length;j++)
{
если (arr[i]> arr[j])
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}

для(i=0;i< 10; i++)
Системы.из.печати(ОБР[я]+" ");
}
}

2 Ответов

Рейтинг:
0

Michael_Davies

Массив основан на нуле, поэтому массив размеров 12 индексируется от 0 до 11, ваше условие цикла for проверяет длину массива, которая составляет 12 элементов, поэтому циклы от 0 до 12, вам нужно, чтобы это была длина массива -1.

for(i=0;i<= arr.length - 1;i++)


Рейтинг:
0

Patrice T

Java основана на нуле, что означает, что массив длины 12 имеет элементы от 0 до 11.
Правильный код-это

for(i=0;i<arr.length;i++)

Другая проблема заключается в том, что arr у вас есть 12 элементов, но вы заполняете только 10 из них.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.