Мне нужна помощь, понимая это. Я действительно не понимаю этот кусок кода, и кто-то здесь может объяснить, что происходит?C# рекурсия проверка если даже
Так это код:
static bool IsEven(int n)
{
if (n == 0) return true;
if (IsEven(n - 1))
{
return false;
}
else
{
return true;
}
}
И тогда я делаю это:
Console.WriteLine(IsEven(10));
Как это на самом деле работает? Если я вхожу в число 10, он печатает значение true. Если я ввожу номер 7, он выводит false. Но я не понимаю, почему это работает.
Он проверяет, является ли число 0, тогда оно возвращает true. Но я ввел 10 (что явно не 0), и он все еще распечатывается верно. Затем он проверяет номер -1.
Итак, это будет 10-1, что равно 9. Но откуда он знает, что 9 НЕ? (он возвращает false).
Я не понимаю этот код, но он работает. Я так смущен.
'Так что будет 10-1, который 9. Но как он знает, что 9 НЕ даже? (он возвращает false). 'Продолжайте следовать той же линии мысли еще 9 раз. – Servy
Но если он все время вычитает 1. В конце концов, каждое число будет 0? –
Да, будет. Итак, теперь вы знаете, как это работает. – Servy