Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

Как в Java заполнить массив (Не вручную)? Я делаю через цикл for, но значения не присваиваются массиву а присваиваются i

Я делаю так:
public static void main(String[] args) {
int[] array = new int[n];
for (int i = 1; i <= array.length; i++) {
System.out.println(i);

Но когда хочу получить значение из массива по индексу, получаю 0

По дате
По рейтингу
Аватар пользователя
Оракул

Ну так вы только принтуете i, ничего не делая с массивом
И индексация с НУЛЯ идет, у вас ArrayIndexOutOfBoundsException вывалится
Забудьте раз и навсегда о цикле i = 1; i <= array.length, только
i = 0; i < array.length (строгое неравенство)

12345
 int[] array = new int[n];   
for (int i = 0; i < array.length; i++) {   
    array[i] = i; 
    System.out.println(i); 
} 
Аватар пользователя
Просветленный

Ваш код имеет небольшую ошибку. Индексы массива в Java начинаются с 0, а не с 1. Поэтому цикл должен выглядеть следующим образом:

123456789
 public static void main(String[] args) { 
    int n = 5; // Размер массива 
    int[] array = new int[n]; 
     
    for (int i = 0; i < array.length; i++) { 
        array[i] = i + 1; // Присваиваем значение элементу массива 
        System.out.println(array[i]); // Выводим значение элемента 
    } 
} 
Аватар пользователя
Оракул

В приведенном вами примере кода действительно есть проблема — значения не присваиваются элементам массива, а просто выводятся на экран в цикле. Для того чтобы заполнить массив, вам нужно в теле цикла присвоить значения элементам массива.
В Java массивы нумеруются с 0, а не с 1. Таким образом, цикл для заполнения массива начинается с 0 и продолжается до array.length - 1.Вот пример кода, который заполнит массив значениями:

12345678910111213141516
 public static void main(String[] args) { 
    int n = 10; // Пример размера массива 
    int[] array = new int[n];  
    for (int i = 0; i < array.length; i++) {  
        array[i] = i; // Присваиваем каждому элементу его индекс 
        System.out.println(array[i]); // Выводим значение на экран 
    } 
 
    // Проверка значения элемента массива по индексу 
    int indexToCheck = 5; // Номер индекса, который хотим проверить 
    if (indexToCheck < array.length) { 
        System.out.println("Значение элемента массива с индексом " + indexToCheck + ": " + array[indexToCheck]); 
    } else { 
        System.out.println("Индекс вне диапазона размера массива"); 
    } 
} 

В этом коде заполняется массив array значениями от 0 до n-1, где n — размер массива. Затем в конце кода добавлена проверка, которая выведет значение элемента массива по индексу 5. Учтите, что индекс массива должен быть в рамках от 0 до array.length - 1. Если вы попытаетесь получить доступ к элементу вне этого диапазона, будет выброшено исключение ArrayIndexOutOfBoundsException.