Почему мой программный код не выполняет оператор goto бесконечно в C#?

class Program
{
    static void Main()
    {
       int i ;
        for ( i=0; i < 10;i++ )
        {
       // p: Console.WriteLine("hello");
        p:  if(i%2!=0)
            {
                if(i==5)
                { 
                    goto p; 
                }
            }
            Console.WriteLine(i);
        }
        Console.ReadKey();
    }
}

//output : 0 1 2 3 4

1 ответ

goto выполняется К сожалению, ничего не изменилось в переменных, так что выполнение занимает тот же путь, что и раньше: он достигает goto снова. Это бесконечный цикл.

Обратите внимание, что в частности i имеет одинаковое значение до и после прыжка. Может быть, это ваше недоразумение.

Вы должны научиться использовать отладчик. Это видно при пошаговом прохождении программы.

Другие вопросы по тегам