C# c中的控制台应用程序菜单问题#

C# c中的控制台应用程序菜单问题#,c#,C#,我对C#(嗯,一般来说,编程)很陌生 我正在尝试为c#控制台应用程序创建菜单。从菜单中进行选择后,菜单将继续显示。。。我已经研究并尝试了许多不同的选择,但似乎没有什么对我有用。。。。我知道我做错事是愚蠢的。 如有任何建议或指导,将不胜感激。提前谢谢 static void Main() //Start of program { //Menu and other UI stuff int userSelection = 0; do { C

我对C#(嗯,一般来说,编程)很陌生 我正在尝试为c#控制台应用程序创建菜单。从菜单中进行选择后,菜单将继续显示。。。我已经研究并尝试了许多不同的选择,但似乎没有什么对我有用。。。。我知道我做错事是愚蠢的。 如有任何建议或指导,将不胜感激。提前谢谢

static void Main()  //Start of program
{   
    //Menu and other UI stuff

    int userSelection = 0;

    do
    {
        Console.WriteLine("[1]  Encryption");
        Console.WriteLine("[2]  Decryption");
        Console.WriteLine("[3]  Exit");

        Console.Write ("Please choose an option 1-3:  ");
        userSelection = Int32.Parse(Console.ReadLine()); 

        switch(userSelection)
        {   
            case 1:
                readFile();
                break;

            case 2:
                decryption();
                break;

            case 3:
                Environment.Exit(0);
                break;
            default:
                Console.WriteLine("Your selection is invalid. Please     try again.");
                break;
        }
    }
    while (userSelection != 4);
}

只有当用户选择值为4时,do/while才会停止,在本例中,它永远不会发生

将您的while条件更改为

while(userSelection <= 0 || userSelection > 3)

它会不断重新出现,因为您将代码放置在
do while
循环中。如果只想运行此代码一次,不要使用循环结构,只需将其直接放置在
Main
中即可

如果你使用类似

do
{
    // ...
}
while (userSelection != 4);
循环中的代码将重复,直到用户输入
4

来自msdn文章中的以下内容:

do语句执行一条语句或语句块 重复执行,直到指定表达式的计算结果为false


另一种选择是在
开关
块后使用
break
语句。

好吧,让你退出
3
,循环的实际条件变得无用。程序看起来很好,编译并工作-至少对我来说是这样。你编写它是为了让它重新出现(do循环)。根据您的函数所做的操作,它将再次循环并打印菜单,直到您退出以避免异常。谢谢大家。。。。非常感谢您的建议/帮助。AntiHeadshot TryParse在我的代码中到底会去哪里?是替换解析吗?从技术上讲,thanksIt也会在他们选择3时停止,只是不在
while
部分。太好了,非常感谢。。。。我以为会是这样的。。。。再次感谢。对不起,我在这里感到困惑-我知道问这个问题的人没有将答案标记为完整,但这并没有真正添加任何新的内容,而(真的)只是意味着它不能结束。
class Program
{
    static void Main()  //Start of program
    {
        //Menu and other UI stuff

        string userSelection;

        do
        {
            Console.Clear();
            Console.WriteLine("[1]  Encryption");
            Console.WriteLine("[2]  Decryption");
            Console.WriteLine("[3]  Exit");

            Console.Write("Please choose an option 1-3:  ");
            userSelection = Console.ReadLine();

            switch (userSelection)
            {
                case "1":
                    Console.WriteLine("mission 1");
                    break;

                case "2":
                    Console.WriteLine("mission 2");
                    break;

                case "3":
                    Environment.Exit(0);
                    break;
                default:
                    Console.WriteLine("Your selection is invalid. Please     try again.");
                    break;
            }
            Console.ReadLine();
        }
        while (true);
    }
}
class Program
{
    static void Main()  //Start of program
    {
        //Menu and other UI stuff

        string userSelection;

        do
        {
            Console.Clear();
            Console.WriteLine("[1]  Encryption");
            Console.WriteLine("[2]  Decryption");
            Console.WriteLine("[3]  Exit");

            Console.Write("Please choose an option 1-3:  ");
            userSelection = Console.ReadLine();

            switch (userSelection)
            {
                case "1":
                    Console.WriteLine("mission 1");
                    break;

                case "2":
                    Console.WriteLine("mission 2");
                    break;

                case "3":
                    Environment.Exit(0);
                    break;
                default:
                    Console.WriteLine("Your selection is invalid. Please     try again.");
                    break;
            }
            Console.ReadLine();
        }
        while (true);
    }
}