Как исправить «пропущенный оператор возврата» в цикле for при попытке вернуть отдельные элементы в массиве? - PullRequest
0 голосов
/ 10 ноября 2019

Мое назначение требует от меня создания метода доступа для получения отдельных элементов массива. Я использую для этого геттер и перебираю массив с помощью цикла for. Я предполагаю, что он должен вернуть мне учебники в массиве, когда я перебираю этот массив.

Когда я компилирую, я получаю «пропущенный оператор возврата». Я понимаю, что это потому, что на самом деле мой возврат находится внутри цикла, но я не вижу, как я могу это исправить.

BookCount - это количество книг, которое было создано ранее для установки размера массива. arrayofBooks - это фактический массив, в котором я буду хранить книги. Что я делаю не так?

public String getBooks() {
    for(int i=0; i<bookCount;i++) {
        return this.arrayOfBooks[i]; 
   }
}

Я ожидаю, что результат выдаст мне отдельные элементы массива.

1 Ответ

0 голосов
/ 10 ноября 2019

return вызывает выход из метода. Цикл for всегда будет выходить из метода на первой итерации. Вам необходимо уточнить, какой String вы намереваетесь вернуть.

Ошибка компиляции происходит из-за того, что цикл может выполняться ноль раз. Это может произойти, если bookCount было 0 или меньше. (Точные подробности длинные, утомительные и содержатся в спецификации языка Java в разделе «достижимость».) Если цикл не выполняется, то нет return для выполнения, и значение, которое должна вернуть функция, остается неопределенным, что являетсяошибка. Также i++ никогда не может быть выполнено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...