我想要求用户重新输入,如果异常被阻止,但不知道如何:
class Quadrilateral
{
Point[] pointsArr = new Point[4];
public Quadrilateral()
{
foreach (Point pointVar in pointsArr)
{
try
{
Console.WriteLine("Input coordinates:");
float x = float.Parse(Console.ReadLine());
float y = float.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("Illegal value, please re-input");
}
}
}
}
我想使用do-while循环,但是有一些问题。
答案 0 :(得分:2)
您可以使用普通的 while
循环,只有在没有异常时才增加迭代器变量,从而确保您输入所需的确切次数。如果发生任何异常,请使用continue
关键字转到下一次迭代。
为简单起见,我使用了Int
类型
int[] pointsArr = new int[4];
int arraySize = pointsArr.Length;
int i = 0;
while (i < arraySize)
{
try
{
Console.WriteLine("Input coordinates:");
float x = float.Parse(Console.ReadLine());
float y = float.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("Illegal value, please re-input");
continue;
}
i++;
}
Console.ReadLine();