Что делает ключевое слово return в методе void в Java?
Я смотрю на учебник по поиску пути и я заметил return
оператор внутри a void
способ (класс PathTest
, строка 126):
if ((x < 0) || (y < 0) || (x >= map.getWidthInTiles()) || (y >= map.getHeightInTiles())) {
return;
}
Я новичок в Java. Может кто-нибудь сказать мне, почему он там? Насколько я знал, return
внутри метода void не допускается.
7 ответов:
Он просто выходит из метода в этот момент. Один раз
return
выполняется, остальная часть кода не будет выполнена.например.
public void test(int n) { if (n == 1) { return; } else if (n == 2) { doStuff(); return; } doOtherStuff(); }
обратите внимание, что компилятор достаточно умен, чтобы сказать вам, какой код не может быть достигнуто:
if (n == 3) { return; youWillGetAnError(); //compiler error here }
вы можете
return
в пустом методе, вы просто не можете возвращает никакого значения (например,return 5;
), вот почему они называют это пустота метод. Некоторые люди всегда явно заканчивают методы void с помощью оператора return, но это не обязательно. Это можете используется, чтобы оставить функцию рано, хотя:void someFunct(int arg) { if (arg == 0) { //Leave because this is a bad value return; } //Otherwise, do something }
ключевое слово просто выводит кадр из стека вызовов, возвращая элемент управления в строку после вызова функции.
язык Java спецификация говорит, что вы можете иметь return без выражения, если ваш метод возвращает void.
Он функционирует так же, как и функция return for с указанным параметром, за исключением того, что он ничего не возвращает, так как нечего возвращать, и управление передается обратно вызывающему методу.
Он выходит из функции и возвращает ничего.
что-то вроде
return 1;
было бы неверно, так как он возвращает целое число 1.
посмотреть этот пример, вы хотите добавить в список условно. Без слова "return" все ifs будут выполнены и добавлены в ArrayList!
Arraylist<String> list = new ArrayList<>(); public void addingToTheList() { if(isSunday()) { list.add("Pray today") return; } if(isMonday()) { list.add("Work today" return; } if(isTuesday()) { list.add("Tr today") return; } }