Что я могу изменить в своей рекурсивной функции, чтобы она работала правильно?

#javascript

#javascript

Вопрос:

 function loo(x) {
    if (x >= 10) {
    return;
    loo(x 1)
   }
}
loo(1);
  

Функция, которая вызывает саму себя, называется рекурсивной функцией. В некотором смысле рекурсия аналогична циклу. Оба выполняют один и тот же код несколько раз, и оба требуют условия (чтобы избежать бесконечного цикла, или, скорее, бесконечной рекурсии в данном случае). Например, следующий цикл:

Комментарии:

1. Неясно, в чем заключается ваш вопрос. Текст вашего вопроса читается как утверждение, а не как указание на то, что вы хотите, чтобы произошло, и с какими трудностями вы сталкиваетесь при достижении этого результата. «чтобы заставить ее работать правильно» нам ни о чем не говорит

2. Но первый указатель заключается в том, что вы не можете получить return перед вторым оператором. Он выполняет инструкции после возврата мертвого кода .

Ответ №1:

Ничего. Если вы запустите этот код, он действительно будет работать правильно. Она просто ничего не выводит. Если вы хотите увидеть какой-то вывод из нее, попробуйте запустить его следующим образом:

 function loo(x) 
{
    if (x >= 10) 
    {
        console.log("finished")
        return;
    }
    console.log("x="   x);
    loo(x 1);
}
loo(1);  

Ответ №2:

 let trace your code :

    function loo(x) {
        if (x >= 10) {
        return;
        loo(x 1)
       }
    }
    loo(1);

the function never works because if block always return noting so change the some statement of  code like this :

    function loo(x) {
        if (x >= 10) {
        return;
            }
        loo(x 1);
        }
then call :

    loo(1);