Я не знаю, как сделать цикл моего меню из его выбора в C#

#c# #function #loops #menu

Вопрос:

Я очень новичок в C#, на самом деле, я никогда не кодировал раньше 4 месяцев назад. Тем не менее, я должен составить меню, но, похоже, я не смогу заставить его выскочить из цикла, когда он будет выполнен, сделав один выбор. Например, если пользователь отвечает на все вопросы, задаваемые при первом выборе, я хочу, чтобы он вышел из первого выбора и показал пользователю все остальные варианты. Лучший пример приведен ниже (это на C#).:

 Console.WriteLine("Enter a number between 1 and 6");  Console.WriteLine("1: Areas of Rectangles"); Console.WriteLine("2: Biggest Number"); Console.WriteLine("3: Valid Points"); Console.WriteLine("4: Dollar Game"); Console.WriteLine("5: Oldest Person"); Console.WriteLine("6: Hi Lo Game"); Console.WriteLine("7: Quit Menu");  int choice = int.Parse(Console.ReadLine()); do {  switch (choice)  {  case 1:  Areas_Of_Rectangles();  break;  case 2:  Biggest_Number();  break;  case 3:  Valid_Points();  break;  case 4:  Dollar_Game();  break;  case 5:  Oldest_Person();  break;  case 6:  Hi_Lo_Game();  break;   if (!int.TryParse(Console.ReadLine(), out choice))  {  break;  }  Console.WriteLine("""   choice   """   "is not a number");  } } while (choice != 7);  static void Areas_Of_Rectangles() {  //=======================================================================================  //Ask the user for the lenght and width of two rectangles  //=======================================================================================  Console.WriteLine("Enter the lenght of the first rectangle");  int lenght1 = int.Parse(Console.ReadLine());  Console.WriteLine("Enter the width of the first rectangle");  int width1 = int.Parse(Console.ReadLine());  int rec1 = lenght1 * width1;  Console.WriteLine("Enter the length of the second rectangle");  int lenght2 = int.Parse(Console.ReadLine());  Console.WriteLine("Enter the width of the second rectangle");  int width2 = int.Parse(Console.ReadLine());  int rec2 = lenght2 * width2;  //==========================================================================================  //Formulas to tell the user which rectangle has a greater area of if it has the same area  //==========================================================================================  if (rec1 gt; rec2) {  Console.Write("Your first rectangle is bigger and has an area of "   rec1); } if (rec2 gt; rec1) {  Console.Write("Your second rectangle is bigger and has an area of "   rec2); } if (rec1 == rec2) {  Console.Write("Both your rectangles have an area of "   rec1); }  

Комментарии:

1. Это потому, что выбор сделан до цикла. Вам нужно немного изменить порядок вашего кода. Но вы также должны добавить код, который уменьшит меню до еще не выбранных параметров и т.д.

2. @ChiefTwoPencils Я попробую, спасибо, но как бы я сократил свое меню до еще не выбранных параметров?

3. Вы хотели бы поместить их в какую-то коллекцию (массив, список и т. Д.) И удалить их по мере их выбора. Имейте в виду, что ваш переключатель зависит от номера опции.