C# 中 while 循环中 switch 语句的不正确行为
Incorrect behavior of switch statement in while loop in C#
我的代码有问题。大多数情况下,我对 switch 语句与 do-while 循环的结合没有任何问题。我认为问题出在 ConsoleKey 函数上,但是由于我开始了编程冒险,所以我无法解决问题。所以我希望来自这个伟大社区的人能帮助我。如果可能的话,我想使用按键在 switch 语句中选择一个选项。感谢帮助。 P.S。英语不是我的第一语言,所以如果我拼错了什么,抱歉。
static void Main(string[] args)
{
Console.WriteLine("Attention");
Console.WriteLine("Choose 1-2");
var inputData = Console.ReadKey();
do
{
switch (inputData.Key)
{
case ConsoleKey.X:
Console.WriteLine("action 1");
break;
case ConsoleKey.Y:
Console.WriteLine("action 2");
break;
default:
Console.WriteLine("Default");
break;
}
} while (inputData.Key != ConsoleKey.Escape);
Console.ReadKey();
}
Console.WriteLine("Attention");
Console.WriteLine("Choose 1-2");
ConsoleKeyInfo inputData = Console.ReadKey();
do
{
switch (inputData.Key)
{
case ConsoleKey.X:
Console.WriteLine("action 1");
break;
case ConsoleKey.Y:
Console.WriteLine("action 2");
break;
default:
Console.WriteLine("Default");
break;
}
Console.WriteLine("Choose 1-2");
inputData = Console.ReadKey();
} while (inputData.Key != ConsoleKey.Escape);
Console.ReadKey();
我的代码有问题。大多数情况下,我对 switch 语句与 do-while 循环的结合没有任何问题。我认为问题出在 ConsoleKey 函数上,但是由于我开始了编程冒险,所以我无法解决问题。所以我希望来自这个伟大社区的人能帮助我。如果可能的话,我想使用按键在 switch 语句中选择一个选项。感谢帮助。 P.S。英语不是我的第一语言,所以如果我拼错了什么,抱歉。
static void Main(string[] args)
{
Console.WriteLine("Attention");
Console.WriteLine("Choose 1-2");
var inputData = Console.ReadKey();
do
{
switch (inputData.Key)
{
case ConsoleKey.X:
Console.WriteLine("action 1");
break;
case ConsoleKey.Y:
Console.WriteLine("action 2");
break;
default:
Console.WriteLine("Default");
break;
}
} while (inputData.Key != ConsoleKey.Escape);
Console.ReadKey();
}
Console.WriteLine("Attention");
Console.WriteLine("Choose 1-2");
ConsoleKeyInfo inputData = Console.ReadKey();
do
{
switch (inputData.Key)
{
case ConsoleKey.X:
Console.WriteLine("action 1");
break;
case ConsoleKey.Y:
Console.WriteLine("action 2");
break;
default:
Console.WriteLine("Default");
break;
}
Console.WriteLine("Choose 1-2");
inputData = Console.ReadKey();
} while (inputData.Key != ConsoleKey.Escape);
Console.ReadKey();