2012-01-01 3 views
0

Я не знаю, насколько я толстый, но у меня есть немного кода проверки, чтобы проверить ответ «да» или «нет».C#! = Оператор не работает правильно

Я не могу заставить его работать. Я использовал код в других местах моей программы, и он работает, но я не могу обнаружить ошибку, если она есть. Код проходит через while, в любом случае, не является то, что является входным символом.

string correctDestenation = Console.ReadLine().ToLower(); 
while (correctDestenation != "y" || correctDestenation != "n") 
{ 
    Console.WriteLine(
     "Oops! You must enter a 'y' for yes and a 'n' for no"); 
    correctDestenation = Console.ReadLine().ToLower(); 
} 
+2

это не должно быть || вы должны использовать && – Baatar

+5

Перед тем, как заподозрить оператора, предположите свою собственную логику и код. – Oded

+3

Я думаю, что довольно смело утверждать, что оператор неравенства '! =' Не работает. –

ответ

8

Ваша логика неверна. Вы хотите использовать & & вместо ||.

while (correctDestenation != "y" && correctDestenation != "n") 

или, вы можете использовать De Morgan's Law и посмотреть на него по-другому, что эквивалентно:

while (!(correctDestenation == "y" || correctDestenation == "n")) 
+0

Я знал, что это было простое спасибо – bobthemac

2

Это условие всегда будет выполнено, как символ не будет равен «у» или равна «n». Используйте & & вместо ||.

1

Как о использовании оператора И

while (correctDestenation != "y" && correctDestenation != "n") 
    { 
      Console.WriteLine("Oops! You must enter a 'y' for yes and a 'n' for no"); 
      correctDestenation = Console.ReadLine().ToLower(); 
    }