Jestem nowym C# zacząłem się go uczyć, aby rozszerzyć języki programowania do mojej dyspozycji, ale mam napotkasz mały problem, że nie spotykamy się ani C ani Java.Próba porównania znaków w języku C#
Próbuję uzyskać odpowiedź użytkownika z klawiatury, a następnie porównując ją z prawdopodobnymi przypadkami i jeśli żadna z tych spraw nie jest zgodna, chcę, aby użytkownik musiał powtarzać proces, dopóki nie wprowadzi poprawnej wartości.
String input = Console.ReadLine();
while ((input[0] != 'N') || (input[0] != 'Y'))
{
input = Console.ReadLine();
}
if (input[0] == 'N')
{
Console.WriteLine("NO");
Console.ReadKey();
}
else if (input[0] == 'Y')
{
Console.WriteLine("YES");
Console.ReadKey();
}
To zdecydowanie nie jest najskuteczniejszy sposób, jaki wypróbowałem, próbowałem też zrobić pętlę do wykonania i wiele innych wariantów.
Problem, który napotykam, polega na tym, że gdy pętla while nie jest włączona, wszystko działa dobrze, ale kiedy ją dodaję, zawsze wchodzi w pętlę, nawet jeśli wejście ma wartość N lub Y i nigdy nie może opuścić pętli, chociaż jasne jest, że jest źle.
Proszę jeśli ktoś może mi dać pewne wyobrażenie, dlaczego to ma miejsce lub jeśli ktoś może zaproponować lepszy sposób to byłoby bardzo mile widziane. Dziękuję Ci.
Karim
Wymień || z && –
spróbuj przełamać i przełączyć .. – sajanyamaha
Myślę, że powinieneś robić coś jak: While (! (input [0] == 'Y' || input [0] == 'N')) –