必须只输入数字(这没有问题),并检查数字是否超过值 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;
}
解析数字成功并
!one_input返回false。因此不执行以下检查。为了让它发挥作用,稍微改变一下条件
!one_input || select > 4。顺便说一句,它还可以改进!one_input || select > 4 || select < 1。为了不重复代码,我会这样写: