Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何返回包含多个菜单的主菜单?_C# - Fatal编程技术网

C# 如何返回包含多个菜单的主菜单?

C# 如何返回包含多个菜单的主菜单?,c#,C#,如果我的程序中有很多菜单,我如何在不使用任何循环的情况下返回主菜单。 假设我需要“Y”表示返回,需要“N”表示结束程序 static void Main(string[] args) {int choice; Console.WriteLine("Main Menu"); Console.WriteLine("1. Rent"); Console.WriteLine("2. Return"); Console.WriteLi

如果我的程序中有很多菜单,我如何在不使用任何循环的情况下返回主菜单。 假设我需要“Y”表示返回,需要“N”表示结束程序

static void Main(string[] args)
    {int choice;
        Console.WriteLine("Main Menu");
        Console.WriteLine("1. Rent");
        Console.WriteLine("2. Return");
        Console.WriteLine("3. Exit");
        choice = Convert.ToInt32(Console.ReadLine());
        while (choice!= 3)
        {
         if  (choice ==1)
          {...
           //when complete all thing in choice 1
           Console.WriteLine("Do you want to start over?(Y=Yes,N=No)");
           // in this part i need to go back to main menu with "Y" input and close program with "N"input
          }
         if (choice ==2)
          {...
           //when complete all thing in choice 2
          Console.WriteLine("Do you want to start over?(Y=Yes,N=No)");
           // doing like choice 1 }

我会以不同的方式编写它,但基于您的代码,这将得到您想要的

  static void Main(string[] args)   
  {
      int choice = 0;
      while (choice != 3)
      {
           Console.WriteLine("Main Menu");
           Console.WriteLine("Rent=1");
           Console.WriteLine("Return=2");
           Console.WriteLine("Exit=3)");
           choice = GetUserChoice("What is your choice?", choice);
           if (choice == 1)
           {
              //when complete all thing in choice 1
              choice = GetUserChoice("Do you want to start over?(Y=1,N=3)", choice);
           }
           else if(choice == 2)
           {
               //when complete all thing in choice 2
               choice = GetUserChoice("Do you want to start over?(Y=1,N=3)", choice);
           }
       }
   }

   private static int GetUserChoice(string question, int choice)
   {
       Console.WriteLine(question);
       return  Convert.ToInt32(Console.ReadLine());
   }

请注意,在选项中,当它询问重新开始时,我会让用户输入1表示Y(是),输入3表示N(否)。

我无法理解您的要求。您是否有代码、图片或其他需要澄清的内容?这一点非常不清楚。你们至少需要提供一些关于这个程序应该如何运行的伪代码。很抱歉这个问题不清楚,我已经在更新我的问题了@TheWiseGod抱歉,我对编程和这个网站非常陌生。@mmking我是否需要将GetUserChoice声明为int。@TheWiseGod在这个场景中,是的。因为这是您希望从用户那里读取和解析的内容。如果您接受字符串而不是解析为int,那么返回类型将是string。