仅接受整数作为答案,但不接受负数

时间:2019-01-04 16:46:18

标签: c#

我正在尝试向用户提问,输入内容只能是正数。如果用户尝试输入单词或负数,请再次询问他该问题。我尝试放置一个if循环,但是它没有用。问题是它接受负数。

int age;
            Console.WriteLine("How old are you?");
            do
            {
                Console.WriteLine("The value must be of integer type");
            } while (!int.TryParse(Console.ReadLine(), out age));

2 个答案:

答案 0 :(得分:2)

您只是在一段时间内错过了一个条件:

... } while (!int.TryParse(Console.ReadLine(), out age) || age < 0);

答案 1 :(得分:0)

对于while循环,只需添加一个额外条件并使用or运算符即可。

while (!int.TryParse(Console.ReadLine(), out age) || age < 0); //while not an integer or while the number is less than zero
{ 
  Console.WriteLine("The value must a positive integer");
}

此外,我不会使用do while循环,因为循环的do部分将始终在检查while条件之前执行。现在编写的方式将告诉用户即使输入有效的整数也必须使用整数类型。