Страницы

Поиск по вопросам

четверг, 9 января 2020 г.

Возврат из условного оператора

#c_sharp


Как вернуться из условного оператора else к вводу года, если пользователь ввел вместо
цифр символы или буквы? При этом выдать сообщение, что были введены символы. т.е. своеобразную
обработку исключения. 
Пробовал через try\catch, но программа все равно прерывается.

class Program
{
    static void Main(string[] args)
    {
        Console.Write("Введите год: ");

        string input = Console.ReadLine();
        int year;

        // Проверяем, что введенное значение можно преобразовать в целочисленный тип.
        if (Int32.TryParse(input, out year))
        {
            Console.WriteLine("Текущий год: " + year);
        }
        else 
        {
            // Хочу выдать ошибку сообщением и вернуться к вводу года.
        }
    }

    }
}

    


Ответы

Ответ 1



Int32.TryParse работает без исключений. while (true) { Console.Write("Введите год: "); string input = Console.ReadLine(); int year; if (Int32.TryParse(input, out year)) { Console.WriteLine("Текущий год: " + year); break; } else { Console.WriteLine("Error. Try again."); } }

Комментариев нет:

Отправить комментарий