如何结束一个按键的while循环
问题描述:
有人可以告诉我,我如何停止这个做与按键循环?如何结束一个按键的while循环
我想在控制台窗口中做一个“移动”光标。
do
{
if (KeyInput.Key == ConsoleKey.UpArrow)
{
downup = downup++;
}
else if (KeyInput.Key == ConsoleKey.DownArrow)
{
downup = downup-1;
}
else if (KeyInput.Key == ConsoleKey.LeftArrow)
{
leftright = leftright -1;
}
else if (KeyInput.Key == ConsoleKey.RightArrow)
{
leftright = leftright++;
}
} while (KeyInput.Key != ConsoleKey.Escape);
答
这应做到:
do
{
var key = Console.ReadKey(true).Key;
if (key == ConsoleKey.UpArrow)
{
downup++;
}
else if (key == ConsoleKey.DownArrow)
{
downup -= 1;
}
else if (key == ConsoleKey.LeftArrow)
{
leftright -= 1;
}
else if (key == ConsoleKey.RightArrow)
{
leftright++;
}
} while (key != ConsoleKey.Escape);
你的原码的思考,我怀疑的问题是,你已经有了代码回路(未公布)之外读取从控制台的关键;这里的重要变化是这需要在循环内部发生。
答
so you mean是这样的吗?
do {
int downup, leftright;
downup = 10;
leftright = 10;
Console.SetCursorPosition(downup, leftright);
Console.Write("█");
var key = Console.ReadKey(true).Key;
if (key == ConsoleKey.UpArrow)
{
downup++;
}
else if (key == ConsoleKey.DownArrow)
{
downup -= 1;
}
else if (key == ConsoleKey.LeftArrow)
{
leftright -= 1;
}
else if (key == ConsoleKey.RightArrow)
{
leftright++;
}
} while (Console.ReadKey(true).Key != ConsoleKey.Escape);
答
var looping = true;
while(looping)
{
switch(Console.ReadKey(true).Key)
{
case ConsoleKey.UpArrow:
downup++;
break;
case ConsoleKey.DownArrow:
downup--;
break;
case ConsoleKey.LeftArrow:
leftright--;
break;
case ConsoleKey.RightArrow:
leftright++;
break;
case ConsoleKey.Escape;
looping = false;
break;
}
}
+0
你有没有试过这个? – 2014-12-08 14:35:18
添加break语句。 – 2014-12-08 00:16:36