Использование return без возвращаемого значения
Есть код:
private void showResult() {
if (mt == null) return;
int result = -1;
try {
Log.d(LOG_TAG, "Try to get result");
result = mt.get();
Log.d(LOG_TAG, "get returns " + result);
Toast.makeText(this, "get returns " + result, Toast.LENGTH_LONG).show();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
Почему return прописывается без возвращаемого значения и что при этом происходит?
Ответы (3 шт):
В данном случае, ключевое слово return использовано для того, чтобы прервать дальнейшее выполнение метода и вернуть управление обратно вызывающему методу.
Поскольку у Вас функция showResult объявлена как void? то есть не возращяет значения.
Оператор
returnиспользуется для выполнения явного возврата из метода. То есть он снова передает управление объекту, который вызвал данный метод. ... Операторreturnпредписывает интерпретатору Java остановить выполнение текущего метода. Если метод возвращает значение, операторreturnсопровождается некоторым выражением.
в Вашем случае просто выполнения явного возврата из метода.
private void showResult() {
if (mt == null) return; //Если mt == null функция здесь завершается
int result = -1;
try {
Log.d(LOG_TAG, "Try to get result");
result = mt.get();
Log.d(LOG_TAG, "get returns " + result);
Toast.makeText(this, "get returns " + result, Toast.LENGTH_LONG).show();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
Почему return прописывается без возвращаемого значения
Так как у вас функция типа void, функция ничего не должен возвращать.