Пройти с for по двумерному массиву

90
22 ноября 2021, 15:10

Вопрос такой, дана задача на 8 ферзей и метод

public static boolean reschenie(boolean[][] pole)

В общем, этот метод описывает поле n на n и, если оно 8 на 8, то там будут размещены 8 ферзей, и если они не будут "бить" друг друга, то метод будет возвращать true иначе false (если хоть один может быть побит другим ферзем).

Можно работать с for оператором и другими простыми операторами, но не с готовыми алгоритмами (поэтому я и выбрал for чтобы пройти им по массиву).

Вопрос - как можно проверить двумерный массив?

P.S. Я понимаю как пройти for по одномерному массиву, но как это сделать с двумерным массивом в методе?

Подскажите пожалуйста...

Answer 1

Вот так в двух циклах можно перебрать двумерный массив:

// Создаем и инициализируем двумерный массив (массив массивов)
int[][] arr = new int[3][];
arr[0] = new int[]{45, 65, 82, 12};
arr[1] = new int[]{43, 90, 44};
arr[2] = new int[]{21, 89, 22, 18, 57};
// проходим по всему массиву двумя циклами for
for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
        arr[i][j]; // здесь делаем с текущим элементом массива все, что нужно
    }
}

Или ридонли через форычи:

for (int[] ints : arr) {
    for (int anInt : ints) {
        anInt; // здесь делаем с текущим элементом массива все, что нужно (read only)
    }
}

Инициализировать массив тоже можно через такие циклы. Я здесь просто для наглядности показала, что двумерный массив может быть с разной длиной строк.

READ ALSO
С какой версии android доступен Snackbars?

С какой версии android доступен Snackbars?

На устройствах android 51 довольно часто вылезают ошибки, связанные со Snackbars

155
Spring отображение статических элементов

Spring отображение статических элементов

Приложение собираю при помощи @SpringBootApplication, стили получилось подключить в файле indexjsp

133
Как работают битовые операции на Long в Java?

Как работают битовые операции на Long в Java?

У меня есть следующий код:

74