Sobes.tech
Back to tasks
Junior — Senior
101

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

Get help with live coding in real time with Sobes Copilot
Task condition

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

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