我试图循环捕获的错误消息,但它只循环了一次,在我再次尝试后立即崩溃,输入错误无效,即使我专门为此创建了布尔错误。
public static void Main(string[] args) {
Console.Clear();
bool error = false;
try {
Console.Write("Enter your age: ");
int age = Convert.ToInt32(Console.ReadLine());
}
catch{
Console.Clear();
error = true;
Console.Write("\nPlease enter a valid age...\n");
while(error == true){
Console.Write("\n" + "Enter your age: ");
int age = Convert.ToInt32(Console.ReadLine());
if(age < 2000 && age > 0){
error = false;
}
}
}
}
当您可以解析输入时,不要使用异常验证用户输入
int age = Convert.ToInt32(Console.ReadLine());
而是使用TryParse
样式方法来验证原始内置数据类型的输入,例如int.TryParse
.
将数字的字符串表示形式转换为其等效的 32 位有符号整数。返回值指示操作是否成功。
下面的示例解析Console.ReadLine
(用户输入),并循环直到用户正确为止。
int age;
Console.Write("Enter your age: ");
while (!int.TryParse(Console.ReadLine(), out age) || age > 2000 || age < 0)
Console.Write("You had one job, enter an age, try again ");
Console.WriteLine(age);
注意:这并不是要为您的应用程序提供完整的工作解决方案,它只是一个示例,说明您可以如何无例外地验证整数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句