我遇到了一个问题,我的程序由于用户输入没有遵循变量数据类型而崩溃。我要求用户做的是为电影注册一些数据。当我们到达电影的发行年份时,它会崩溃,如果用户输入不遵循整数数据类型。
我当时试图做的是确保int release的值是1000到2050之间的数字。
我想要发生的事情: 用户被迫输入介于1000和2050之间的值。如果输入不同的值,则会要求他再试一次。
我认为相关的代码应该是相关的:
public static void RegisterMovie()
{
Console.Write("Ange titel: ");
string title = Console.ReadLine();
Console.Write("Ange genre: ");
string genre = Console.ReadLine();
Console.Write("Ange release: ");
int release = int.Parse(Console.ReadLine());
Console.Write("Ange actor: ");
string actor = Console.ReadLine();
Console.Write("Ange director: ");
string director = Console.ReadLine();
Movie m = CreateMovie(title, genre, release, actor, director);
AddMovie(m);
}
感谢您帮助我。
答案 0 :(得分:3)
bool ok = false;
int release;
while (!ok)
{
Console.Write("Ange release: ");
ok = int.TryParse(Console.ReadLine(), out release);
ok = ok && (release >= 1000) && (release <= 2050);
}
答案 1 :(得分:2)
使用Int32.TryParse()
并处理不是整数的情况。返回值表示操作是否成功
有关更多信息,请参阅
http://msdn.microsoft.com/en-us/library/system.int32.tryparse.aspx
答案 2 :(得分:1)
改用TryParse。
Console.Write("Ange release: ");
int release;
while (!int.TryParse(Console.ReadLine(), out release))
{
Console.Write("Ange release: ");
}