Hy! Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException? упаковка;
public class Array {
public static void main(String[] args) {
int i;
int[] ar1 = new int[50];
for(i = 0; i < ar1.length; i++)
{
ar1[i] = i * 2 + 1;
System.out.print(ar1[i] + " ");
};
System.out.println();
for(i = ar1.length; i > -1; i--)
{
ar1[i] = i * 2 - 1;
System.out.print(ar1[i]);
};
}
}
После компиляции консоли отображаются:
1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 73 75 77 79 81 83 85 87 89 91 93 95 97 99
Исключение в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 50 на учебе.Array.main(Array.java:18)
Мне нужна консоль вывода во второй строке 99 97 95 93...
Заранее спасибо!
Вы начинаете с ar1.length
во втором цикле, который выходит за пределы.
Чтобы заставить его работать, вам нужно начать с ar1.length-1
, который является максимальным индексом для вашего массива. Это связано с тем, что массивы основаны на 0 на Java, как отмечено в комментариях @Maroun Maroun.
Первый раз, когда второй цикл цикла, я = 50 (начальное значение), который находится за пределами конца массива. Это значение используется перед обновлением индекса i--, поэтому ar1 [50] выходит за пределы (соответствующие индексы от 0 до 49 для массива 50 элементов).