Попытка выполнить итерацию в зависимости от ввода ключа, используя цикл while с if/else ifC#

Место общения программистов C#
Ответить
Anonymous
 Попытка выполнить итерацию в зависимости от ввода ключа, используя цикл while с if/else if

Сообщение Anonymous »

У меня есть блок кода для проверки того, что пользователь вводит с помощью клавиатуры...
В основном запрашиваются клавиши со стрелками ВВЕРХ/ВНИЗ/ВЛЕВО/ВПРАВО... >
При нажатии вверх значение счетчика должно увеличиваться на 1.
При нажатии вниз значение должно уменьшаться на 1.
Однако
Он оценивает не все нажатия клавиш, а только первое.
Итак, если я решу нажать «Вниз». оно будет только уменьшаться, независимо от того, изменю ли я позже ввод с «Вниз» на «Вверх».
Вот фрагмент, который необходимо изменить.

Код: Выделить всё

Point p1 = new Point(5, 2);
ConsoleKeyInfo input = Console.ReadKey();
while (Console.ReadKey().Key != ConsoleKey.Escape)
{
if (input.Key == ConsoleKey.UpArrow)
{
p1.Y++;
Console.WriteLine(p1.Y);
} else if (input.Key == ConsoleKey.DownArrow)
{
p1.Y--;
Console.WriteLine(p1.Y);
} else if (input.Key == ConsoleKey.LeftArrow)
{
p1.X--;
Console.WriteLine(p1.X);
} else if (input.Key == ConsoleKey.RightArrow)
{
p1.X++;
Console.WriteLine(p1.X);
}
}
Я хочу увеличить/уменьшить значение в зависимости от того, какая клавиша нажата:
При нажатии влево оно должно уменьшаться на -1 каждый раз, когда я нажимаю влево.
Я должен иметь возможность изменять вводимые данные в любое время.
Я также хочу иметь возможность сравнивать значения X и Y с фиксированными значениями.
Например, я хочу иметь возможность сравнивать:
X = 5 и Y = 2?
затем иметь возможность взять под контроль цикл программы.

Подробнее здесь: https://stackoverflow.com/questions/791 ... if-else-if
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»