如何在try catch语句中重新请求输入

omn*_*mni 2 c#

string l = Console.ReadLine();

try
{
    int.Parse(l);
}
catch (FormatException)
{
    Console.WriteLine("Invalid input. Please enter 1, 2, or 3.");
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我已经要求输入,但如果用户输入一个非整数的答案,如字母"f",catch语句会捕获它,但之后再次抛出异常,因为变量"l"仍然等于"f".救命?

Lee*_*Lee 6

您可以使用int.TryParse而不是捕获异常.它返回解析是否成功,因此您可以在循环中检查它,直到输入有效,例如

int i;
bool valid = false;
do {
    Console.WriteLine("Enter an int: ");
    string input = Console.ReadLine();
    valid = int.TryParse(input, out i);
} while(! valid);

//use i
Run Code Online (Sandbox Code Playgroud)