簡體   English   中英

如何從開關返回 go? c#

[英]How to go back from a switch? c#

添加積分后,我希望它返回 go 以再次顯示主菜單。 這樣做的方法是什么? 還有更簡單的方法嗎? 我在編程方面不是很有經驗。

            Console.WriteLine("-------------------------------");
            Console.WriteLine("");
            Console.WriteLine("  VENDING MACHINIES LTD");
            Console.WriteLine("");
            Console.WriteLine("-------------------------------");

            Console.WriteLine("          Main Menu");
            Console.WriteLine("");
            Console.WriteLine("1 - Add Credits (current credits= 0.00)");
            Console.WriteLine("2 - Select product/s");
            Console.WriteLine("3 - Exit");
            Cons

您可以將 while(true) 用於菜單的永恆循環並返回以退出您的應用程序

Console.WriteLine("-------------------------------");
Console.WriteLine("");
Console.WriteLine("  VENDING MACHINIES LTD");
Console.WriteLine("");
Console.WriteLine("-------------------------------");

while(true)
{
    Console.WriteLine("          Main Menu");
    Console.WriteLine("");
    Console.WriteLine("1 - Add Credits (current credits= 0.00)");
    Console.WriteLine("2 - Select product/s");
    Console.WriteLine("3 - Exit");
    Console.WriteLine("");
    Console.Write("Please Enter A Number: ");
    choice = Convert.ToInt32(Console.ReadLine());

    while (choice < 1 || choice > 3)
    {
        Console.Write("Incorrect option. Please Re-Enter: ");
        choice = Convert.ToInt32(Console.ReadLine());
    }


    switch (choice)
    {
        case 1:
            Console.Write("How Many Credits Would You Like To Add? ");
            credits = Convert.ToInt32(Console.ReadLine());

            Console.Write("You Now Have {0} Credits", credits);
            Console.WriteLine("");
            Console.Write("Press return to go back to the main menu");
            Console.ReadLine();
            break;

        case 2:
            Console.WriteLine();

            break;
            
        case 3:
            Console.WriteLine("Bye-bye");

            return;
    }
}

試試這個代碼:

var  returnBack = true;
 do
{      
           Console.WriteLine("-------------------------------");
            Console.WriteLine("");
            Console.WriteLine("  VENDING MACHINIES LTD");
            Console.WriteLine("");
            Console.WriteLine("-------------------------------");

            Console.WriteLine("          Main Menu");
            Console.WriteLine("");
            Console.WriteLine("1 - Add Credits (current credits= 0.00)");
            Console.WriteLine("2 - Select product/s");
            Console.WriteLine("3 - Exit");
            Console.WriteLine("");
            Console.Write("Please Enter A Number: ");
            choice = Convert.ToInt32(Console.ReadLine());

            while (choice < 1 || choice > 3)
            {
                Console.Write("Incorrect option. Please Re-Enter: ");
                choice = Convert.ToInt32(Console.ReadLine());
            }


            switch (choice)
            {
                case 1:
                    Console.Write("How Many Credits Would You Like To Add? ");
                    credits = Convert.ToInt32(Console.ReadLine());

                    Console.Write("You Now Have {0} Credits", credits);
                    Console.WriteLine("");
                    Console.Write("Press return to go back to the main menu");
                    Console.ReadLine();
                    break;

                case 2:
                    Console.WriteLine();
                    break;
                case 3:

                returnBack=false;
                break;
               
            }
} while (returnBack);

您可以使用遞歸方法,我還建議提取“菜單”控制台寫入行。 請查看以下內容:

static void Main(string[] args)
        {
            DisplayMenu();
            var choice = Convert.ToInt32(Console.ReadLine());
            // Final response
            choice = DisplayMenu(choice);
        }
        public static void DisplayMenu()
        {
            Console.WriteLine("          Main Menu");
            Console.WriteLine("");
            Console.WriteLine("1 - Add Credits (current credits= 0.00)");
            Console.WriteLine("2 - Select product/s");
            Console.WriteLine("3 - Exit");
            Console.WriteLine("");
            Console.Write("Please Enter A Number: ");
        }
        // Recursive overload 
        public static int DisplayMenu(int choice)
        {
            // If invalid input
            if (choice<1 || choice>3)
            {
                Console.Write("Incorrect option. Please Re-Enter: ");
                Console.WriteLine();
                DisplayMenu();
                return DisplayMenu(Convert.ToInt32(Console.ReadLine()));
            }
            // If valid show one more time the menu
            DisplayMenu();
            return Convert.ToInt32(Console.ReadLine());
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM