C# goto语句的用法(附带实例)
几乎所有的计算机语言都含有 goto 这个指令,C# 也不例外。
C# 中的 goto 是一个无条件的跳越指令,但是几乎所有的结构化语言,都建议读者不要使用这个指令。因为这个指令会破坏程序的结构性,记得笔者在美国读研究生时,教授就明文规定凡是含有 goto 指令的程序,成绩一律打 8 折。
goto 语句在执行时,后面一定要加上标题(label),标题是一个符号地址,也就是告诉 C# 语言,直接跳到标题位置执行指令。当然,程序中一定要含有标题这个语句,标题的写法和变量一样,但是后面要加上冒号“:”。
例如,有一个指令如下:
【实例】goto 指令的运用,本程序会要求用户输入两个数字,如果第一个数字大于第二个数字则利用 goto 指令终止程序的执行,否则程序会利用 goto 指令再度要求用户输入两个整数。
执行结果为:
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 指令再度要求用户输入两个整数。
- int x, y;
- int index = 1;
- programrepeat:
- Console.WriteLine($"第 {index} 次输入");
- Console.Write("请输入数字 : ");
- x = int.Parse(Console.ReadLine());
- Console.Write("请输入数字: ");
- y = int.Parse(Console.ReadLine());
- if (x > y)
- goto programstop;
- index++;
- goto programrepeat;
- programstop:
- Console.WriteLine("程序结束");
第1次输入
请输入数字 : 2
请输入数字: 5
第2次输入
请输入数字 : 5
请输入数字: 2
程序结束