AspNet goto 语句

  • AspNet goto 语句已关闭评论
  • 141 次浏览
  • A+
所属分类:.NET技术
摘要

 1.运行到标签名 后面的代码【代码块2 】就会执行,并不是只有跳转才会执行


goto 语句 可以无条件转移到程序中的标签指定的位置,由标识符加上冒号构成,语法如下:

goto 标签名; 代码块1; 标签名: 代码块2;

例子:

        /// <summary>         /// 例子:使用goto         /// </summary>         static void Simple1()         {         loop:             var num = new Random().Next(0, 10);             Console.WriteLine($"num:{num}");             if (num % 2 == 0)                 //  如果是偶数,则跳过中间代码,直接运行 jump标签 后的代码                 goto jump;             Console.WriteLine("==  Coding  ==");         jump: Console.WriteLine("Hello World!!!");             if (num % 2 != 0)             {                 Console.WriteLine();                 //  如果不是偶数,则运行 loop标签 后的代码                 goto loop;             }             Console.ReadLine();         }

 

PS:

1.运行到标签名后面的代码【代码块2】就会执行,并不是只有跳转才会执行

2.跳转goto标签时,中间的代码不会被执行,标签名后的代码块会被执行一次,逻辑有问题容易形成死循环

        /// <summary>         /// 例子:死循环         /// </summary>         static void SimpleEndlessLoop()         {         loop:             Console.WriteLine("Hello World!!!");             goto loop;             Console.ReadLine();         }

3.标签名 必须和 goto 在同一起,无法跨方法和类

AspNet goto 语句

 4.goto 可以跳出循环,但不能跳入循环

        /// <summary>         /// 例子:goto在循环中的使用         /// </summary>         static void SimpleFor()         {             for (int i = 0; i < 9; i++)             {                 Console.WriteLine($"i={i}");                 goto loop;             }         loop:             Console.WriteLine("Hello World!!!");             Console.ReadLine();         }

AspNet goto 语句

5.goto 可以在switch中跳入别的case

        /// <summary>         /// 例子:goto在 switch 中的使用         /// </summary>         static void SimpleSwitch()         {             loop:             var num = new Random().Next(0, 10);             switch (num)             {                 case 1:                     Console.WriteLine("Hello World!!!");                     break;                 default:                     Console.WriteLine($"num={num}");                     //  goto 可以在switch中跳入别的case中                     if (num % 2 == 0) gotocase 1;                     break;             }             if (num % 2 != 0)             {                 Console.WriteLine();                 //  如果不是偶数,则运行 loop标签 后的代码                 goto loop;             }             Console.ReadLine();         }