C# Как установить нечисловое значение c на 0 - PullRequest
0 голосов
/ 16 июня 2020

Мне нужно написать код, который будет запрашивать 3 целых числа и находить наибольшее из них. Однако, если пользователь вводит нечисловое c значение, оно должно иметь нулевое значение. Пока что я написал это

        int a, b, c;

        Console.WriteLine("Enter value 1:");
        a = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Enter value 2:");
        b = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Enter value 3:");
        c = Convert.ToInt32(Console.ReadLine());

        if (a > b && a > c)
        {
            Console.WriteLine("The greatest value is: {0}", a);
        }
        if (b > a && b > c)
        {
            Console.WriteLine("The greatest value is: {0}", b);
        }
        if (c > a && c > b)
        {
            Console.WriteLine("The greatest value is: {0}", c);
        }

Этот код работает только с числами. Моя проблема в том, что я не могу сделать нечисловой c вход равным нулю. Я попытался использовать строку вместо int, поэтому ошибки нет, но я не могу использовать ">" со строками в операторах if, и я также попытался использовать по умолчанию, потому что когда по умолчанию, значит, он равен нулю.

Спасибо

Ответы [ 2 ]

3 голосов
/ 16 июня 2020

Вы можете просто заменить:

x = Convert.ToInt32(Console.ReadLine());

на ...

int.TryParse(Console.ReadLine(), out int x);

Если ввод не может быть проанализирован, x будет равно 0.

0 голосов
/ 16 июня 2020

Я думаю, вы можете создать функцию, которая выполняет попытку перехвата, таким образом вы печатаете сообщение о том, что ввод не был числом.

static int Check(string input)
        {
            int result;
            try
            {
                result = Convert.ToInt32(input);
            }
            catch (FormatException e)
            {
                Console.WriteLine("Input not integer, the value assigned is 0");
                result = 0;
            }
            return result;
        }

Для реализации вам достаточно позвонить:

a = Check(Console.ReadLine());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...