为什么我的程序代码没有在c#中无限地运行goto语句?

时间:2016-07-03 13:08:17

标签: c#-4.0 goto

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 个答案:

答案 0 :(得分:0)

正在执行goto。不幸的是,变量中没有任何变化,因此执行采用与以前完全相同的路径:它再次到达goto。这是一个无限循环。

注意,特别是i在跳转之前和之后具有相同的值。也许这是你的误解。

您应该学会使用调试器。单步执行程序时可以看到这一点。