switch case中的goto问题
题目是这样的:在键盘上接收用户输入的15个整数数值,输入完成后,接收用户输入的指令, 如果用户输入a(大小写不区分)升序排列,如果输入d(大小写不区分)降序排列,否则提示
用户重新输入指令,输出排序前与排序后的数列内容。
环境VS2010 C#
程序代码:
namespace ConsoleApplication16 { class Program { static void Main(string[] args) { int[] arr = new int[15]; Console.WriteLine("请输入15个整数"); //初始化 for (int i = 0; i < 15; ++i) { if (!int.TryParse(Console.ReadLine(), out arr[i])) Console.WriteLine("输入有误"); } //复制原数组 int[] arr1 = (int[])arr.Clone(); //获取指令,根据指令调用函数 Order: Console.WriteLine("请输入指令"); char order; order = (char)Console.Read(); switch (order) { case 'a': fun1(arr); break; case 'A': fun1(arr); break; case 'd': fun2(arr); break; case 'D': fun2(arr); break; default: Console.WriteLine("请重新输入指令"); goto Order; } //打印原数组 Console.Write("原序列为:"); for (int i = 0; i < 15; ++i) Console.Write(arr1[i] + ","); Console.WriteLine(); //打印新数组 Console.Write("新序列为:"); for (int i = 0; i < 15; ++i) Console.Write(arr[i] + ","); Console.WriteLine(); } //a或者A指令 public static void fun1(int[] arr) { for(int i = 0; i < 14; ++i) for(int j = 0; j < 14 - i; ++j) { int temp; if(arr[j] > arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } //d或者D指令 public static void fun2(int[] arr) { for(int i = 0; i < 14; ++i) for(int j = 0; j < 14 - i; ++j) { int temp; if(arr[j] < arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } } }
这个是我的测试
请问指令输入那里为什么出现循环?