Всем привет!
Пытался решить задачу, но если честно, ощущение, что я не понимаю чего-то фундаментального здесь, что другим очевидно. Помогите, пожалуйста, желательно разжевать, как дурачку.
Из подсмотренных ответов вижу, что многие используют подобный код:
for (int i = 0; i < array.length; i++) {
if (array[i]%2==0){
array[i]=-array[i];
}
Но я не понимаю, что значит array[i]?
array наш массив, у которого есть собственные ячейки, в данном случае 5 шт, но разве после того, как мы создали переменную i, она стала иметь какое-то отношение к array?
У меня вообще никак не проходит сравнения общего массива через array (например: (array % 2) == 0). Только если я каждую ячейку указываю отдельно. Например: array[1] % 2 == 0.
У людей в комментариях же одна проверка на массив, в которой фигурирует эта array[i]. Объясните, как это работает? Если она имеет какое-то отношение к ячейкам или к массиву в целом, то за счет чего?
В материалах обучения (в т.ч. доп, ничего подобного не увидел).
Заранее благодарю!
Anonymous #3445931
10 уровень
Массивы, индекс и переменная i
Решен
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
ГоффMaster
27 мая, 08:24
Попробуй прогони вот этот код, может поможет разобраться
По окончанию цикла массив-будкт выглядеть так:
0, 2, 4, 6, 8
+1
AlekseyOfGod
27 мая, 05:59полезный
Привет!
У людей в комментариях же одна проверка на массив, в которой фигурирует эта array[i]. Объясните, как это работает? Если она имеет какое-то отношение к ячейкам или к массиву в целом, то за счет чего?
Программисты стремятся постоянно облегчить себе жизнь, поэтому и придумали писать в своих кодах единообразную конструкцию вида array[i], чтобы заменить ей все возможные варианты записи array[0], array[1], array[2], array[3], array[4]. То есть, при нумерации элементов массива они в своих программах вместо явной записи чисел индекса массива 0, 1, 2, 3, 4 создают переменную int i; , которую, в свою очередь, потом вносят в array[], получив таким образом используемую для всех случаев жизни конструкцию array[i].
К этому всему ещё притягивают цикл for (int i = 0; i < 5; i = i + 1) {}, в котором как раз и присваивают i по очереди числа 0, 1, 2, 3, 4, которые потом попадают через i в массив array[i], подменяя собой индекс массива для дальнейшего манипулирования над ним.
Получается, переменная i это временный контейнер для хранения в один момент времени одного из чисел 0, 1, 2, 3, 4, которые используются в качестве индекса массива.
И всё это делается для того, чтобы можно было неявно компилятору подсунуть array[0], array[1], array[2], array[3], array[4] и при этом явно не записывать эти конструкции в коде, достигая его компактности.
Успешного кодинга! :)
+1
AlekseyOfGod
27 мая, 05:59
Только если я каждую ячейку указываю отдельно. Например: array[1] % 2 == 0.
Это частный случай правильной записи инструкции компилятору сравнения на равенство с нулём полученного остатка от деления значения второго (с начала) элемента массива .
0
AlekseyOfGod
27 мая, 05:58
У меня вообще никак не проходит сравнения общего массива через array (например: (array % 2) == 0).
Компилятор, когда получает от вас инструкцию вида if ((array % 2) == 0) ; впадает в отчаяние, так как не может понять, от какого из 5 чисел массива вы всё же хотите получить остаток от деления. Тут требуется указать явно или неявно (через переменную) номер элемента массива, например, такими способами:
а) if (array[4] % 2) == 0;
б) int i = 4; if (array[i] % 2) == 0;
+1
AlekseyOfGod
27 мая, 05:57полезный
array наш массив, у которого есть собственные ячейки, в данном случае 5 шт, но разве после того, как мы создали переменную i, она стала иметь какое-то отношение к array?
С того момента, когда вы вписываете i в конструкцию языка Java - array[], она станет влиять непосредственно на массив array[], то есть, какое-либо заранее присвоенное нами значение этой переменной (выбранное из значений 0, 1, 2, 3, 4) станет заменять собой числа 0, 1, 2, 3, 4, которые используются в массиве array[] для нумерации элементов этого массива.
+1
AlekseyOfGod
27 мая, 05:11
Но я не понимаю, что значит array[i]?
array[i] - это форма записи двух независимых друг от друга переменных, за одной из которых array[] - скрывается значение ссылки на одномерный массив, а за другой i - значение номера элемента (индекса) массива.
0
Lubus
26 мая, 20:15
i - по сути это просто переменная, которая увеличивается при прохождении всего цикла. Условно прошел цикл в переменную i добовляем 1. Т.е array[i] где i - номер в массиве(ссылка на его значение). Например, у тебя есть массив {1,2,3,4,5} в нем array[0] =1; array[1]=2; array[2] = 3;
если в этом случае i = 4 => массив[i] = 5.
+1