2014-12-08 51 views
1

有人可以告訴我,我如何停止這個做與按鍵循環?如何結束一個按鍵的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

回答

2

這應做到:

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); 

你的原碼的思考,我懷疑的問題是,你已經有了代碼迴路(未公佈)之外讀取從控制檯的關鍵;這裏的重要變化是這需要在循環內部發生。

0

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); 
0
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