Помогите с ошибкой в моей Java-программе

Компьютеры программирование java ошибка ArrayIndexOutOfBoundsException

Я — новичок в Java. Пробую делать сортировку пузырьком, написал такой код:

import java.util.Random;
import java.util.Scanner;

public class Main {


public static void main(String[] args) {

double[] test = new double[5];
double t;

//Присвоение каждому элементу случайного значения
for(int i = 0;i<test.length;i++){
test[i] = Math.round((100*Math.random()));
System.out.println(test[i]);
}

//Сортировка пузырьком
for(int i = 0;i<test.length;i++){

for(int k = 0;k<test.length-1;k++){

int x = i+1;
if(test[i]>test[x]){
t = test[i];
test[i] = test[x];
test[x] = t;

}
}
}
}
}


А мне вылазит ошибка:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Main.main(Main.java:24)


Что я не так делаю?
Ответы:
Обращаешься к элементу с индексом 5 (т.е. к шестому по счёту) в массиве из 5 элементов (т.е. старший индекс — 4).
void swap(int[] arr, int i, int j) {
   int t = arr[i];
   arr[i] = arr[j];
   arr[j] = t;
}

void bubblesort(int[] arr){
   for(int i = arr.length-1 ; i >= 0 ; i--){
       for(int j = 0 ; j < i ; j++){
           if( arr[j] > arr[j+1] )
              swap(arr, j, j+1);
       }
   }
}
Когда i = 4, то в строке "int x = i+1;" x равняется 5 что выходит за границы массива (test[5] не существует, максимальный индекс это test[4]).


17 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.