Двойной улучшенный цикл для подсчета в логическом [] []? - PullRequest
0 голосов
/ 28 сентября 2019

Я должен создать метод с возвращаемым значением, который подсчитывает количество ложных значений в 2-мерном логическом массиве (размещение в кинотеатре), используя двойной расширенный цикл for.Программа не запустится из-за проблем с оператором возврата.

Вот мой код:

public static byte emptySeats(boolean[][] cinemaSeats) {
    int availableSeats = 0;
    int rowLength = cinemaSeats.length;
    int seatLength = cinemaSeats[0].length;

    for (boolean[] radNr : cinemaSeats) {
        rowLength--;
        for (boolean[] seteNr : cinemaSeats) {
            seatLength--;
            if (!cinemaSeats[rowLength][seatLength]) {
                availableSeats++;
            }
        }
    }
    return availableSeats;
}

Ответы [ 2 ]

2 голосов
/ 28 сентября 2019

Это будет выполнять итерацию по каждому элементу в массиве, искать ложные значения и соответственно добавлять к общей сумме:

public static int emptySeats(boolean[][] cinemaSeats) {
    int availableSeats = 0;
    for (int y = 0; y < cinemaSeats.length; y++)
        for (int x = 0; x < cinemaSeats[y].length; x++)
            if (!cinemaSeats[y][x])
                availableSeats++;
    return availableSeats;
}

Вот аналогичное решение с использованием улучшенных циклов for:

public static int emptySeats(boolean[][] cinemaSeats) {
    int availableSeats = 0;
    for (boolean[] row : cinemaSeats)
        for (boolean seat : row)
            if (!seat) availableSeats++;
    return availableSeats;
}
0 голосов
/ 28 сентября 2019

Вы используете расширенный цикл for, а также создаете 2 переменные для индекса.это не правильный путь.ниже приведен правильный код для расширенного цикла for.

Также вы возвращаете целое число, и ваш метод возвращает тип байта.

public static int emptySeats (boolean [][] cinemaSeats) {

int availableSeats = 0;

        for (boolean[] radNr : cinemaSeats) {
            for(boolean seteNr : radNr) {
                if(!seteNr){
                availableSeats++;
                }
            }
        }
return availableSeats;
}
...