Объясните, пожалуйста, как происходит вывод двумерного массива на Java?

226
22 июня 2022, 17:00
int[][] nums = new int[][]
{
  { 1, 2, 3 },
  { 4, 5, 6 },
  { 7, 8, 9 }
};
for (int i = 0; i < nums.length; i++) {
  for (int j = 0; j < nums[i].length; j++) {
    System.out.printf("%d ", nums[i][j]);
  }
  System.out.println();
}

Пытаюсь понять, почему во вложенном цикле for (int j = 0; j < nums[i].length; j++) j < nums[i]. Ведь получается, если j < nums[i].length, то он же не будет выполняться? Или как вообще это происходит, не понимаю?

Answer 1

Цикл с условием j < nums[i].length выполняется до тех пор, пока j не станет равным nums[i].length (в вашем случае это всегда 3). Значение i к этому условию не имеет отношения, оно всего лишь определяет какая строка выводится.

num[i] это элемент массива nums, т.е. каждый отдельный вложенный массив.

READ ALSO
Проблема с циклом foreach для коллекции

Проблема с циклом foreach для коллекции

Есть некоторая коллекция bookcase:

179
Активация профиля application.properties в зависимости от среды запуска

Активация профиля application.properties в зависимости от среды запуска

Приложение разрабатывается и тестируется на хосте под Windows и должно запускаться в контейнере DockerСоответственно в Docker-compose запускается отдельный...

241
Cравнение строк

Cравнение строк

C клавиатуры вводится "Hello", по почему-то выдает false,хотя вроде бы строки равны

268
Разница между Chronometer и CountDownTimer

Разница между Chronometer и CountDownTimer

Создаю приложение, которое каждый день даёт заданияЗадание даётся раз в 24 часа

310