Доброго времени суток друзья. Я совсем новичок в C#. Пишу консольное приложение и не могу понять почему работает так, а не так.
У меня есть переменная
odd_or_even в которую пользователь должен что то ввести. После того как он это сделает, идет цикл с проверкой на то чтобы переменная
odd_or_even равнялась либо слову
odd, либо слову
even, в противном случае будет следовать строка с ошибкой и просьба ввести одно из этих слов.
Вопрос такой: В моем понимании цикл должен проверить переменную
odd_or_even на значение
odd или
even, то есть while (odd_or_even.ToLower() != "odd"
|| odd_or_even.ToLower() != "even"), но если я ставлю именно знак
или || в таком случае он всегда считает это за ошибку, даже если я ввожу слова
odd/even. А вот когда я поставил в условие знак
и &&, как видно в коде, то все начало работать.
Возможно я еще чего то не понял, но мне кажется что я должен просить цикл проверить переменную на одно из двух значений, то есть или
odd или
even, а не сразу два значения.
Console.Write("Player 1 write Odd or Even: ");
string odd_or_even = Console.ReadLine();
while (odd_or_even.ToLower() != "odd" && odd_or_even.ToLower() != "even")
{
Console.Write("ERROR: Player 1 PLEASE write Odd or Even: ");
odd_or_even = Console.ReadLine();
}