流程控制-goto语句

    C#允许给代码加上标签,这样就可以使用goto语句直接跳转到这些代码行上。该语句有其优缺点。优点:这是控制什么时候执行哪些代码的一种非常简单的方式。缺点:过多的使用这个技巧将很难读懂代码

     goto语句用法如下:

     goto <labelName>;

     标签用下述方式定义:

     <labelName>;

     例如,下面的代码:

     int myInteger = 5;

     goto myLabel;

     myInteger += 10;

     myLabel:

     Console.WriteLine("myInteger = {0}",myInteger);

    其执行过程如下:

     *myInteger声明位int类型,并赋予值5。

     *goto语句中断正常的执行过程,把控制转到标为myLabel:的代码行上。

     *myInteger的值写到控制台上。

    下面的第3行代码没有被执行。

     int myInteger = 5;

     goto myLabel;

     myInteger += 10;

     myLabel:

     Console.WriteLine("myInteger = {0}",myInteger);

    实际上,如果在应用程序中加入这段代码,就会发现编译时,任务列表窗口会显示一个警告,即“Unreachable code detected”和一个行号。

    goto语句有它们的用途,但也可能使代码陷入混乱之中。

    例如,因使用goto语句而非常难懂的代码如下所示:

     start:

     int myInteger = 5;

     goto addVal;

     writeResult:

     Console.WriteLine("myInteger = {0}",myInteger);

     goto start;

     addVar:

     myInteger += 10;

     goto writeResult;

    这是有效的代码,但很难读懂,可以自己试试,看看会发生什么情况。在此之前,应尝试理解这些代码会完成什么任务。

    后面再讨论这个语句,因为本章的其他一些结构将使用该语句(但最好不要使用它)。

posted @ 2009-03-11 02:12    阅读(988)  评论(0编辑  收藏  举报