С# Как разрешить программе продолжать работу после недопустимого ввода

102
16

Я хочу, чтобы программа продолжала работу после того, как пользователь вводит недопустимый ввод. Когда пользователь вводит строку, появляется сообщение об ошибке, а затем программа закрывается, однако я хочу, чтобы программа продолжала просить пользователя ввести действительный ввод. Я попытался поставить try/catch внутри do/while, но он, похоже, не работает для меня.

        Int16 dollars;
try
{
do
{
Console.WriteLine("Enter a value, or 0 to exit.");
dollars = Convert.ToInt16(Console.ReadLine());
if (dollars >= 1)
{
Console.WriteLine("your current balance is");
myBank.addMoney(dollars);
myBank.getValue();
}
else if (dollars < 0)
{
Console.WriteLine("You have entered a negative number, your current balance is");
myBank.getMoney(dollars);
myBank.getValue();
}

} while (dollars != 0);
}
catch
{
Console.WriteLine("The value you have entered is invalid");
Console.ReadKey();
}

спросил(а) 2021-01-19T17:19:34+03:00 6 месяцев, 1 неделя назад
1
Решение
90

Вместо преобразования ввода используйте TryParse.

Console.WriteLine("Enter a value, or 0 to exit.");
var input = Console.ReadLine();
var ok = Int16.TryParse(input, out dollars);
if (!ok)
{
Console.WriteLine("Please input a valid number.");
continue;
}

ответил(а) 2021-01-19T17:19:34+03:00 6 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема