Я работаю над простым консольным приложением для хранения паролей в C#.Если утверждения всегда передаются в оператор else
У меня проблема с разделом, который спрашивает, хочет ли пользователь замаскировать все записи паролей из этой точки.
Это часть кода:
bool tryagain = true;
while(tryagain == true)
{
Console.WriteLine("Would you like to mask all other password entiries?(Y,N)");
string input = Console.ReadLine();
if (input == "y" | input == "Y")
//Something wrong, always passes to Your awnser was invalid
{
maskpass = true;
tryagain = false;
}
if (input == "n" | input == "N")
{
maskpass = false;
tryagain = false;
}
else
{
Console.WriteLine("Your awnser was invalid, would you like to try again?");
string yesno = Console.ReadLine();
if (yesno == "y" | yesno == "Y")
{
tryagain = true;
}
if (yesno == "n" | yesno == "N")
{
Environment.Exit(0);
}
}
}
Проблема заключается в том, когда я запускаю код всегда работает на заявление другого.
Я уверен, что ошибка очень проста, и я просто незнаю, но у кого-нибудь есть идеи о том, что происходит здесь?
, если вы хотите выполнить ИЛИ, не используйте один | но вы должны использовать double || , например. 'input ==" y "|| input == "Y" ' –
использовать' Equals' вместо '==' –
@juergend Как это поможет ..? – Daniel