Код:
package com.company;
public class Array {
public static void main(String argv[]) {
double array[][] =new double[5][5];
for(int i=1;i<=5;i++) {
for(int j=1; j<=5; j++){
array[i][j]=Math.sin(i+j);
System.out.println(array[i][j]);
} }
}
}
порождает вывод:
0.9092974268256817
0.1411200080598672
-0.7568024953079282
-0.9589242746631385
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at com.company.Array.main(Array.java:8)
Массивы индексируются от 0 до (длина-1).
Такиим образом, обращение к элементу array[1][5]
выходит за пределы массива и порождает исключение java.lang.ArrayIndexOutOfBoundsException
.
У вас есть две опции
Изменить циклы:
for(int i=0;i<5;i++) {
for(int j=0; j<5; j++){
array[i][j]=Math.sin(i+j+2); // +2, потому что теперь обе переменные меньше на 1
System.out.println(array[i][j]);
}
}
Или починить индексы:
for(int i=1;i<=5;i++) {
for(int j=1; j<=5; j++){
array[i-1][j-1]=Math.sin(i+j);
System.out.println(array[i-1][j-1]);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
пилю игру на LIBGDX встроил GPGS у меня такая проблема
Запускаю Apache kaffka на компьютере с Win7 с помощью стандартных команд (указанных в QuickStart)
Вопрос даже не вопрос, а, точнее сказать, просьба показать на мои возможные недочёты, предложить более грамотный код
Я только учусь, не судите строго за вопрос, а еще лучше - помогитеСборка gradle