Обработка исключений при неверном вводе данных - C#
Формулировка задачи:
Здравствуйте.Возникла проблема с реализацией исключения на ввод(необходимо,чтобы при вводе неправильного значения постоянно выводилось сообщение о повторе ввода.Как это реализовать с учётом моего кода?Примеры:
Код1:
Код2:
double x, y,R = 0;
while (true)
{
try
{
Console.WriteLine("Введите R");
R = double.Parse(Console.ReadLine());
Console.WriteLine("Введите Х");
x = double.Parse(Console.ReadLine());
Console.WriteLine("Введите Y");
y = double.Parse(Console.ReadLine());
if (Math.Pow(x, 2) + Math.Pow(y, 2) <= Math.Pow(R, 2) && x <= R && y <= R || x - y >= 0)
Console.WriteLine("True");
else
Console.WriteLine("False");
Console.ReadKey();
}
catch
{
Console.WriteLine("Введите правильно значение:");
}
}int R = 2;
double x =0;
double y = 0;
Console.WriteLine("Введите х");
while(x<=0 || x>=0)
{
try
{
x = Double.Parse(Console.ReadLine());
if (x < -4 || x > 10)
Console.WriteLine("Интервал значений должен быть [-4,10]");
else if (x < -2)
y = x + 3;
else if (x < 4)
y = -0.5 * x;
else if (x < 6)
y = -2;
else
y = -Math.Sqrt(Math.Pow(R, 2) - Math.Pow((x - 8), 2)) - 2;
Console.WriteLine("y=" + y);
Console.WriteLine("Введите х");
}
catch (FormatException)
{
Console.WriteLine("Введите правильно значение X:");
}
}
Console.ReadKey();Решение задачи: «Обработка исключений при неверном вводе данных»
textual
Листинг программы
static void Main()
{
Console.Write("Enter number: ");
double number = ReadDouble(IsNumber);
Console.WriteLine("Kewl!");
}
static double ReadDouble(Predicate<double> validate = null)
{
double result;
while (!double.TryParse(Console.ReadLine(), out result) || (validate != null && !validate(result)))
Console.Write("Invalid number, try again: ");
return result;
}
static bool IsNumber(double value)
{
return !double.IsNaN(value);
}