#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);