У меня есть очень простая игра с принятием решений, которую я делаю в консольном приложении C#, и я пытаюсь позволить пользователю выбрать один из 1 или 2, который дает вам определенный ответ. Я также хотел, чтобы он проверял ввод пользователя и сообщал пользователю, что он неверен, и перезагружал вопрос, если он не 1 или 2 или представляет собой просто пробелы.
Поэтому я установил цикл if, который проверяет, является ли пользовательский ввод NullorWhitespace ИЛИ НЕ равен 1 ИЛИ НЕ равен 2, затем выводит пользователю «Неправильный ввод» и перезагружает вопрос, если эти условия верны.
Чтобы перезагрузить вопрос они находятся внутри цикла while, который выполняется, если bool (runAgain) = true. Я делаю это логическое значение истинным в своем операторе if, чтобы оно запускалось снова, если оно неверно. Оператор if и перезапуск вопроса работают хорошо, проблем нет.
Что не работает, так это оператор else if (выполняется, если входное значение равно 1) и оператор else (должно выполняться, если входное значение равно 2). Они просто выполняют цикл If (неправильный ввод).
Честно говоря, я понятия не имею, почему они не работают, но это код ниже. Вероятно, это будет очень легко исправить. Я просто новичок во всех этих вещах, поэтому для меня не имеет смысла, почему это не работает, и прошу прощения, если мой вопрос неясен.
bool runAgain = true;
while(runAgain)
{
Console.WriteLine(/*My question to user*/);
Console.WriteLine(/*Ask user to pick 1 or 2*/);
string answer = Console.ReadLine();
answer = answer.Trim();
if (string.IsNullOrWhiteSpace(answer) || answer != "1" || answer != "2")
{
Console.WriteLine("Wrong Input");
runAgain = true;
}
else if (answer == "1")
{
runAgain = false;
//code to execute if 1 is inputted
}
else
{
runAgain = false;
//code to execute if 2 is inputted
}
}