Что будет если вернуть значение в рекурсии?

138
26 апреля 2019, 03:30

Допустим есть такой метод:

public boolean method() {
 ...
 if(check)
   return false;
 ...
 method();
 ...
 return true;
}

И допустим у нас есть проверка if(method). Происходит рекурсия, в какой то момент метод вернет false. Что будет потом? Что вернет первый вызванный метод? true или false?

Я просто не помню, после возвращения значения метод идет к завершающим скобкам. И после этого рекурсия прекратится, или все остальные методы будут выходить так сказать из точки с запятой(показано на рисунке) и возвращать true, пока в конце последний не вернет true?

Answer 1

Первый вызванный метод вернет true, если в нем дойдет до вызовa method();.

public boolean method() {
 ...
 if(check)
   return false;
 ...
 return method();
}

Но в таком случае всегда будет возвращаться false - так как это условие остановки рекусии.

READ ALSO
Циклы for в java

Циклы for в java

У меня появилась одна идея и чтобы ее реализовать мне нужна ваша помощьМожно ли в цикле, for, while, do while, не имеет значения, написать код, который...

139
Аннотация @EnableCaching в spring

Аннотация @EnableCaching в spring

Решил применить кэширование в своем приложении используя аннотацииПовесил @Cacheable(cacheNames="books") на метод по поднятию списка книг и аннотацию...

146
Почему не работает replaceFirst? [дубликат]

Почему не работает replaceFirst? [дубликат]

На данный вопрос уже ответили:

158
turnsLeft векторы на Java

turnsLeft векторы на Java

Код на Java, Q - Stack точекНепонятно (код не мой, препод дал), что такое turnsLeft

146