Хорошо, я пройду через другие ценности, чтобы вы могли научиться делать это самостоятельно.
позволяет принимать значения 2,2
, например.
проверка первый, если заявление (if (a<=0)
), чтобы увидеть, если его действительным
a=2
так заменить a
со значением 2
является 2 <= 0
? Неа. Давайте перейдем к следующему ведомости
else if (b<=0)
ПРИМЕЧАНИЕ: else if
по существу является выражением, которое оно использовало, если предыдущий оператор if не работает.
b = 2
является 2<=0
? Неа. НА СЛЕДУЮЩИЙ!
else
обрабатывает все, что терпит неудачу при первой if
и все исходящее else ifs
Так просто заткнуть в значениях.
a = 2 b = 2
return function (function (a-1, b-1), b-1);
->
return function (function (2-1, 2-1), 2-1);
-> return function (function (1, 1), 1);
Вы можете пойти двумя путями с этим держать повторяющиеся вниз или логически думать об этом.
Теперь ... позволяет начать замечать шаблон здесь и искать базовый регистр (обычно используемый для рекурсивных функций, подобных этим), поэтому вы замечаете return b
в первом операторе if ВСЕГДА будет фактическим возвращаемым результатом в конце и всем другой повторяющийся будет вытекать из этого результата, потому что это единственное реальное значение, которое вы вернетесь. Теперь у нас это установлено Как мы можем дойти до этого значения? если заявление a<=0
- единственный способ добраться туда. Вы начинаете замечать отношения.
вход a <= b
или a <= 0
выхода b
вход a > 0
a > b
выхода 0
Возьмем малых значений ('а = 2, B = 2'), например, и попытаться увидеть, какие звонки сделаны и как работает метод. Делать это на бумаге было бы легче увидеть, чем смотреть на экран. –
Трассировка рекурсивных методов может быть сложной задачей, поэтому важно следить за тем, что происходит в памяти на бумаге шаг за шагом. Начните с небольших значений и начните свой путь вверх. Проверьте свою работу, запустив программу. – Deena
Извините, у меня нет терпения, чтобы выписать то, что вы просите здесь, но я предлагаю вам будет очень полезно запустить его в отладчике Eclipse (или Netbeans или что-то еще) поэтапно и убедитесь сами. –