C# 使用switch语句创建连续运行的应用程序
我接到一个任务,我必须连续运行一个程序,除非按下3键,在这种情况下程序关闭。如果按下1或2键,则需要显示“菜单1”或“菜单2”,任何其他键都会发出错误消息,告知用户按1、2或3(退出程序) 我设法使我的开关工作,但我在保持程序运行时遇到了问题,因此一个人可以输入一个1,然后输入一个2,这应该会给出结果: 菜单1 菜单2 我试图将程序放入循环中,但结果不是很好,下面是我的代码:C# 使用switch语句创建连续运行的应用程序,c#,loops,switch-statement,C#,Loops,Switch Statement,我接到一个任务,我必须连续运行一个程序,除非按下3键,在这种情况下程序关闭。如果按下1或2键,则需要显示“菜单1”或“菜单2”,任何其他键都会发出错误消息,告知用户按1、2或3(退出程序) 我设法使我的开关工作,但我在保持程序运行时遇到了问题,因此一个人可以输入一个1,然后输入一个2,这应该会给出结果: 菜单1 菜单2 我试图将程序放入循环中,但结果不是很好,下面是我的代码: Console.WriteLine("*** MENU ***\n\n1. Display Menu 1\n2. Dis
Console.WriteLine("*** MENU ***\n\n1. Display Menu 1\n2. Display Menu 2\n3. Exit");
ConsoleKeyInfo uservalue = Console.ReadKey();
string foo = uservalue.KeyChar.ToString();
while (foo != "3")
{
switch (foo)
{
case "1":
Console.WriteLine("Menu 1");
Console.ReadLine();
break;
case "2":
Console.WriteLine("Menu 2");
Console.ReadLine();
break;
default:
Console.WriteLine("Invalid Selection. Please enter 1, 2 or 3");
Console.ReadLine();
break;
}
}
快到了。。。您要做的是等待用户输入,并仅在按下3时退出 示例
string command;
do
{
command = Console.ReadLine();
}
while(!"3".Equals(command, StringComparison.InvariantCultureIgnoreCase))
只需在循环中移动前三行,并删除所有
case
语句中的ReadLine
。另外,我想知道为什么要执行KeyChar.ToString()
。您可以使用switch(KeyChar){case'1':…}
很好。或者更好,直接使用键
。@Konrad Kokosa如果我这样做,while(foo!=“3”)将不再工作,因为输入3的部分在循环本身中。删除ReadLine语句也会导致控制台连续写入文本。@bucket,但所有这些方法调用都是非常自我解释的。。。当然,在循环之前,您必须再次ReadKey
。