首页 > 编程笔记 > C#笔记 阅读:15

C# goto语句的用法(附带实例)

通义灵码
几乎所有的计算机语言都含有 goto 这个指令,C# 也不例外。

C# 中的 goto 是一个无条件的跳越指令,但是几乎所有的结构化语言,都建议读者不要使用这个指令。因为这个指令会破坏程序的结构性,记得笔者在美国读研究生时,教授就明文规定凡是含有 goto 指令的程序,成绩一律打 8 折。

goto 语句在执行时,后面一定要加上标题(label),标题是一个符号地址,也就是告诉 C# 语言,直接跳到标题位置执行指令。当然,程序中一定要含有标题这个语句,标题的写法和变量一样,但是后面要加上冒号“:”。

例如,有一个指令如下:
begin:
    ...
    if (i > j)
        goto stop;
    goto begin;
    ...
stop:
这段语句主要的含义为,如果 i 大于 j 则跳到 stop 地址,否则跳到 begin 地址。另外,在使用 goto 时必须要注意,这个 goto 指令,只限在同一程序段落内跳,不可以跳到另一函数或子程序内。

【实例】goto 指令的运用,本程序会要求用户输入两个数字,如果第一个数字大于第二个数字则利用 goto 指令终止程序的执行,否则程序会利用 goto 指令再度要求用户输入两个整数。
  1. int x, y;
  2. int index = 1;
  3. programrepeat:
  4. Console.WriteLine($"第 {index} 次输入");
  5. Console.Write("请输入数字 : ");
  6. x = int.Parse(Console.ReadLine());
  7. Console.Write("请输入数字: ");
  8. y = int.Parse(Console.ReadLine());
  9. if (x > y)
  10. goto programstop;
  11. index++;
  12. goto programrepeat;
  13. programstop:
  14. Console.WriteLine("程序结束");
执行结果为:

第1次输入
请输入数字 : 2
请输入数字: 5
第2次输入
请输入数字 : 5
请输入数字: 2
程序结束

相关文章