Многомерный массив Java — как объяснить строку?

Написал код, который работает :)
Но возник вопрос со строкой во вложенном цикле.

Вот весь код рабочий:
public class Main{
	public static void main(String args[]){
		int a[][] = {{1,2,3,4,5,6},{1,2,3,4,5,6},{1,2,5,6},{1,2,3,4,5,6}};
		for(int i = 0; i < a.length; i++){
			for(int k = 0; k < a[i].length; k++){
				System.out.print(a[i][k]);
			}
		System.out.println("");
		}
	}
}


А вот строка, которая требует объяснения
for(int k = 0; k < a[i].length; k++)

В ней k < числа столбцов (по идее 1 цикл), а выводит в итоге весь массив верно. Разъясните, почему работает? :))
  • Вопрос задан
  • 3033 просмотра
Пригласить эксперта
Ответы на вопрос 3
Не могу понять, что вас смутило. В цикле по i мы перебираем массивы - элементы массива a. В цикле по k мы перебираем элементы этих самых массивов. То есть мы по очереди выводим элементы всех массивов.
Ответ написан
Цикл работает до тех пор, пока условие истинно. У вас условие записано правильно, и истинно оно будет, покаk < a[i].lengthНа первой итерации
k == 0
a[i].length == 6
Что вас смутило?

UPD: первый цикл - это строки (в привычном понимании)
int a[][] = {
        {1,2,3,4,5,6},
        {1,2,3,4,5,6},
        {1,2,5,6},
        {1,2,3,4,5,6}
};

Думаю, так нагляднее.
Ответ написан
@smet4ik
Вы перепутали строки и столбцы:
i/k k=0, k=1, .....
i=0 {1, 2, 3,4,5,6}
i=1 {1, 2, 3,4,5,6}
i=2 {1, 2, 5,6}
i=3 {1, 2, 3,4,5,6}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы