如何结束一个按键的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); 
+0

添加break语句。 – 2014-12-08 00:16:36

这应做到:

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