【发布时间】:2020-06-04 09:28:40
【问题描述】:
如何提示用户输入 1 到 20 之间的数字。如果用户输入的是字符串而不是数字,那么它应该会显示一个错误,说明它是无效的,并且应该在 c# 中输入一个有效的数字。 当用户输入字符串而不是数字时,这会引发异常。
private static int number_of_participants()
{
int tmp;
int num;
Console.WriteLine("enter no of students");
num = Convert.ToInt32(Console.ReadLine());
if (num < 1 || num > 20)
{
Console.WriteLine("this is not number. enter valid num");
num = Convert.ToInt32(Console.ReadLine());
}
else if (int.TryParse(Console.ReadLine(), out tmp))
{
Console.WriteLine("Enter no of students between 1 t0 20: ");
tmp = Convert.ToInt32(Console.ReadLine());
}
Console.WriteLine("Invalid: enter number of students");
num = Convert.ToInt32(Console.ReadLine());
return num;
}
【问题讨论】:
-
看看你是如何使用
int.TryParse的?您应该使用 everywhere 而不是Convert.ToInt32。 -
这样做会抛出“无法将类型 bool 隐式转换为 int”的错误
-
如果不能确认输入的字符串是有效数字,可以试试这个方法int.TryParse(string s, out int result)。如果输入字符串是有效数字,它返回 true 并在结果上为您提供数字,否则返回 false。