【发布时间】:2017-05-07 10:44:41
【问题描述】:
我希望能够阻止人们输入除 0 到 19 之间的 int 值以外的任何内容。
使用 tryParse,我可以确保只能输入整数值。使用标准的 while 循环,我可以确保只能输入 0 到 19 之间的整数,但我很难将其合并为两个值。
到目前为止,我让它工作的唯一方法是将两个循环分开,它看起来很乱。像这样:
while (!(int.TryParse(Console.ReadLine(), out quant)))
{
Console.Clear();
Console.WriteLine("Current total: £" + total.ToString("0.00\n"));
Console.WriteLine("That is an invalid quantity. Please enter the quantity again");
}
while ((quant >= 20 || quant < 0))
{
Console.Clear();
Console.WriteLine("Current total: £" + total.ToString("0.00\n"));
Console.WriteLine("That is an invalid quantity. Please enter the quantity again");
while (!(int.TryParse(Console.ReadLine(), out quant))) {
Console.Clear();
Console.WriteLine("Current total: £" + total.ToString("0.00\n"));
Console.WriteLine("That is an invalid quantity. Please enter the quantity again");
}
}
如果重复输入不正确的值,这是我可以让这两个值循环的唯一方法。
如何使用多个值来使用单个循环?
【问题讨论】:
-
while (!(int.TryParse(Console.ReadLine(), out quant)) || quant > 19 || quant < 0)? -
我试过了,除非我输入错误,否则它不会起作用。