Невозможно выйти из цикла IF, даже если условия ложны C#C#

Место общения программистов C#
Anonymous
Невозможно выйти из цикла IF, даже если условия ложны C#

Сообщение Anonymous »

Я пишу очень простую игру с принятием решений в виде консольного приложения 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
}
}

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