Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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# 循环switch语句_C# - Fatal编程技术网

C# 循环switch语句

C# 循环switch语句,c#,C#,我是C#的新手。我在控制台应用程序中有一个“菜单”。现在,当我从菜单中选择一个项目并完成该菜单项所需的操作后,我想再次循环并显示菜单,以便用户可以选择不同的菜单项。我在菜单上有一个出口,我只想用它退出。我尝试了一个while循环,但它不起作用。选择菜单项并运行所选项目代码后,它将关闭应用程序。我做错了什么 static void Main() { int input = 0; while (true) { C

我是C#的新手。我在控制台应用程序中有一个“菜单”。现在,当我从菜单中选择一个项目并完成该菜单项所需的操作后,我想再次循环并显示菜单,以便用户可以选择不同的菜单项。我在菜单上有一个出口,我只想用它退出。我尝试了一个while循环,但它不起作用。选择菜单项并运行所选项目代码后,它将关闭应用程序。我做错了什么

static void Main()
    {   
        int input = 0;
        while (true)
        {

            Console.WriteLine("MENU");
            Console.WriteLine("Please enter the number that you want to do:");
            Console.WriteLine("1. Do thing A");
            Console.WriteLine("2. Do thing B");
            Console.WriteLine("3. Do thing C");
            Console.WriteLine("4. Do thing D");
            Console.WriteLine("5. Do thing E");
            Console.WriteLine("6. Do thing F");
            Console.WriteLine("7. Exit");

            int menuchoice = int.Parse(Console.ReadLine());

            switch (menuchoice)
            {
                case 1:
                    Console.WriteLine("Thing A has been done"); 
                    break;
                case 2:
                    Console.WriteLine("Thing B has been done");
                    break;
                case 3:
                    Console.WriteLine("Thing C has been done");
                    break;
                case 4:
                    Console.WriteLine("Thing D has been done");
                    break;
                case 5:
                    Console.WriteLine("Thing E has been done");
                    break;
                case 6:
                    Console.WriteLine("Thing F has been done");
                    break;
                case 7:
                    Environment.Exit; //edit
                    break;
                default:
                    Console.WriteLine("Sorry, invalid selection");
                    break;
            }

            input++;
            if (input < 30)
                continue;
            else
                break;
        }           
    }
static void Main()
{   
int输入=0;
while(true)
{
Console.WriteLine(“菜单”);
Console.WriteLine(“请输入您想要的号码:”);
Console.WriteLine(“1.做一件事”);
Console.WriteLine(“2.dothingb”);
Console.WriteLine(“3.Do thing C”);
Console.WriteLine(“4.Do thing D”);
Console.WriteLine(“5.Do thing E”);
控制台。写线(“6.做事情F”);
控制台写入线(“7.退出”);
int menuchoice=int.Parse(Console.ReadLine());
开关(menuchoice)
{
案例1:
Console.WriteLine(“已经完成的事情”);
打破
案例2:
Console.WriteLine(“事情B已经完成”);
打破
案例3:
Console.WriteLine(“事情C已经完成”);
打破
案例4:
Console.WriteLine(“事情D已经完成”);
打破
案例5:
Console.WriteLine(“事情已经完成”);
打破
案例6:
Console.WriteLine(“事情F已经完成”);
打破
案例7:
Environment.Exit;//编辑
打破
违约:
Console.WriteLine(“对不起,选择无效”);
打破
}
输入++;
如果(输入<30)
持续
其他的
打破
}           
}
有人能帮忙吗?提前谢谢

编辑:我知道“Console.Exit”不起作用。我确实是这样说的,告诉我控制台必须退出那里。我的问题是,每次选择一个选项并运行所选的选项代码后,我都需要循环整个菜单。我只想用出口退出。但此时菜单不会循环,仅选择1个选项并运行选项代码后,控制台关闭


编辑:当您启动程序,按1键,然后按Return键时会发生什么情况?这才是真正的问题,菜单似乎没有循环。在我启动程序并按1键后,返回代码,以防Case1运行正常,但控制台刚好关闭。如果我再次启动控制台,这次按2键,案例2中的代码也会正常运行,但控制台会再次关闭。我已经像这样测试了我所有的案例,所有的案例都运行得很好

更换
Console.Exit带有
输入=30
或直接使用
返回


请注意行
int menuchoice=int.Parse(Console.ReadLine())将产生错误。您可以使用
int.TryParse
..

替换
Console.Exit带有
输入=30
或直接使用
返回


请注意行
int menuchoice=int.Parse(Console.ReadLine())将产生错误。您可以使用
int.TryParse

非常简单的方法是执行以下操作。使用输入计数器作为退出while循环的标志

 case 7:
   input =30;
 break;

非常简单的方法是执行以下操作。使用输入计数器作为退出while循环的标志

 case 7:
   input =30;
 break;

如果我删除了
控制台,它对我来说就可以了。退出
。那是什么?文档中似乎没有

正如@madgnome在评论中所说,您应该将其替换为
Environment.Exit()


如果我移除
控制台,它对我来说很好。退出
。那是什么?文档中似乎没有

正如@madgnome在评论中所说,您应该将其替换为
Environment.Exit()


由于没有
控制台,您的代码示例无法编译。请退出


只需更换
Console.Exit;中断带有
返回语句,您的示例应按预期工作。

您的代码示例未编译,因为没有
控制台。退出


只需更换
Console.Exit;中断带有
返回语句和您的示例应能按预期工作。

这在我的机器上运行良好,但在30个命令后会停止,当然这是您的逻辑指示的

控制台.Exit
在我的机器上显示复制错误。我以前从未使用过
控制台。请退出


你就不能用
input=30重新拼一下吗中断循环?

这在我的机器上可以正常工作,但在30个命令后会停止,当然这取决于您的逻辑

控制台.Exit
在我的机器上显示复制错误。我以前从未使用过
控制台。请退出


你就不能用
input=30重新拼一下吗中断循环?

保持简单:循环一直保持在循环中,直到按下7

  int menuchoice  = 0;  
        while (menuchoice != 7)  
        {  

            Console.WriteLine("MENU");  
            Console.WriteLine("Please enter the number that you want to do:");  
            Console.WriteLine("1. Do thing A");  
            Console.WriteLine("2. Do thing B");  
            Console.WriteLine("3. Do thing C");  
            Console.WriteLine("4. Do thing D");  
            Console.WriteLine("5. Do thing E");  
            Console.WriteLine("6. Do thing F");  
            Console.WriteLine("7. Exit");  

            menuchoice = int.Parse(Console.ReadLine());  

            switch (menuchoice)  
            {  
                case 1:  
                    Console.WriteLine("Thing A has been done");   
                    break;  
                case 2:  
                    Console.WriteLine("Thing B has been done");  
                    break;  
                case 3:  
                    Console.WriteLine("Thing C has been done");  
                    break;  
                case 4:  
                    Console.WriteLine("Thing D has been done");  
                    break;  
                case 5:  
                    Console.WriteLine("Thing E has been done");  
                    break;  
                case 6:  
                    Console.WriteLine("Thing F has been done");  
                    break;  
                case 7:  
                    break;  //edit
                default:  
                    Console.WriteLine("Sorry, invalid selection");  
                    break;  
            }  

保持简单:循环一直保持在循环中,直到按下7

  int menuchoice  = 0;  
        while (menuchoice != 7)  
        {  

            Console.WriteLine("MENU");  
            Console.WriteLine("Please enter the number that you want to do:");  
            Console.WriteLine("1. Do thing A");  
            Console.WriteLine("2. Do thing B");  
            Console.WriteLine("3. Do thing C");  
            Console.WriteLine("4. Do thing D");  
            Console.WriteLine("5. Do thing E");  
            Console.WriteLine("6. Do thing F");  
            Console.WriteLine("7. Exit");  

            menuchoice = int.Parse(Console.ReadLine());  

            switch (menuchoice)  
            {  
                case 1:  
                    Console.WriteLine("Thing A has been done");   
                    break;  
                case 2:  
                    Console.WriteLine("Thing B has been done");  
                    break;  
                case 3:  
                    Console.WriteLine("Thing C has been done");  
                    break;  
                case 4:  
                    Console.WriteLine("Thing D has been done");  
                    break;  
                case 5:  
                    Console.WriteLine("Thing E has been done");  
                    break;  
                case 6:  
                    Console.WriteLine("Thing F has been done");  
                    break;  
                case 7:  
                    break;  //edit
                default:  
                    Console.WriteLine("Sorry, invalid selection");  
                    break;  
            }  

有什么问题吗?(替换Console.Exit by Environment.Exit())关于您的编辑:对于我来说,您的示例循环是我所期望的。当启动程序(
Console.Exit
替换为
Environment.Exit
)并按1,然后按Return时会发生什么情况?我怀疑你贴的样品与我们的有所不同