Не получается сделать проверку в цикле while
Нужно чтобы вводились только цифры(с этим проблем нет) и плюс проверка на то, чтобы цифра не превышала значение 4.Но почему то проверка на значение больше 4 игнорируется.
static int Set_Select()
{
Console.WriteLine("Выберите нужное действие: ");
Console.WriteLine("1.Сложение\n2.Вычитание\n3.Умножение\n4.Деление");
int select;
string input = Console.ReadLine();
bool one_input = int.TryParse(input,out select);
while(!one_input && select > 4)
{
Console.WriteLine("Ошибка,попробуйте ещë раз");
input = Console.ReadLine();
one_input = int.TryParse(input,out select);
}
return select;
}
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Парсинг числа проходит успешно, !one_input возващает false. Поэтому следующая проверка не производится.
Чтобы заработало, поменяйте немного условие !one_input || select > 4. Кстати, его можно улучшить !one_input || select > 4 || select < 1.
А чтобы не дублировать код, я бы написал так:
static int Menu()
{
while (true)
{
Console.WriteLine("Выберите нужное действие:");
Console.WriteLine("1.Сложение\n2.Вычитание\n3.Умножение\n4.Деление");
string input = Console.ReadLine();
if (int.TryParse(input, out int select) && select > 0 && select < 5)
{
return select;
}
}
}