Назад к задачам
Junior — Senior
22

Разбор поведения итератора с оператором yield в C#

Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Определите, какой вывод получит программа при выполнении следующего кода.

var start = 0;
var iterator = GenerateSequence(start);

static IEnumerator<int> GenerateSequence(int start)
{
    if (start % 2 != 0)
    {
        yield break;
    }

    if (start < 3)
    {
        start++;
        yield return start;
    }
}

iterator.MoveNext();
iterator.MoveNext();
iterator.MoveNext();
Console.WriteLine(iterator.Current);