for (int i = 0; i < result.length; i++) {
result[i] = new int[i + 1];
for (int j = 0; j < result[i].length; j++) {
result[i][j] = i + j;}
System.out.print(result[i][j] + " ");}
Объясните, пожалуйста, что конкретно делают циклы. Я слышала объяснения, что внешний цикл перебирает строки, внутренний ячейки... Что значит " перебирает "? Заполняет значениями? Тогда ещё в первом цикле были бы заполнены ячейки всех строк... Или внешний цикл просто " создаёт" строки (то есть выделяет память для них)?
В данном конкретном примере, result[I] это строка массив? А j - количество ячеек, которое на 1 меньше, чем длина массива, потому что нумерация с 0?
Если можно, построчно объяснить.
Заранее благодарю за помощь! Rina
16 уровень
Что делают циклы
Решен
Комментарии (5)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Михаил
5 сентября 2021, 09:49полезный
В строке 1, определяется цикл, который проходится по массиву result.
В строке 2, в каждом элементе массива result создается новый числовой массив, с количеством элементов, которое на 1 больше текущего индекса массива result.
Например, при i = 0:
result[0] = new int[ 0 + 1 ]; // т.е result[0] содержит массив с одним элементом
при i = 1:
result[1] = new int[1+1]; // result[1] содержит массив с двумя элементами и т.д.
В строке 3 определяется цикл, который проходится уже по внутренним массивам, которые находятся в массиве result.
В строке 4 элементам внутренних массивов присваиваются значения.
Строка 5 выводит значения на экран.
+3
Rina
5 сентября 2021, 11:00
Что значит "в строке 1 цикл прошелся по массиву"? Что такое прошелся? Или в строке 1 счетчик цикла, в котором команда в элементах массива создаёт внутренние массивы?
0
Михаил
5 сентября 2021, 12:42решение
На каждой итерации цикла берется элемент массива по индексу i, над которым производятся операции, описанные в теле цикла. И так пока элементы в массиве не закончатся.
Т.е. на первой итерации i = 0, берется элемент массива с индексом 0 и над ним производится операция, описанная в теле цикла:
result[0] = new int[0 + 1] // создается новый массив с одним элементом;
После выполнения всех операций в теле цикла счетчик цикла увеличивается на 1.
На второй итерации i = 1, берется следующий элемент массива с индексом 1 и над ним происходят теже операции что и с предыдущим элементом:
result[1] = new int[1 + 1] // создается новый массив с двумя элементами.
И так далее, со всеми элементами массива result.
+4
Rina
6 сентября 2021, 07:53
Спасибо огромное. Тогда можешь мне еще, пожалуйста, разъяснить, правильно ли я понимаю, что j у нас на 1 меньше, чем длина массива result[I], потому что нумерация ячеек с нуля?
0
Pavlo PlynkoJava-разработчик в CodeGymExpert
8 сентября 2021, 09:26
Да, максимальное значение индекса массива всегда на 1 меньше его длины.
0