Метод, возвращающий большее значение двух чисел

Так у меня есть этот код

  static void Main(string[] args)
    {
        Console.Write("First Number = ");
        int first = int.Parse(Console.ReadLine());

        Console.Write("Second Number = ");
        int second = int.Parse(Console.ReadLine());

        Console.WriteLine("Greatest of two: " + GetMax(first, second));
    }

    public static int GetMax(int first, int second)
    {
        if (first > second)
        {
            return first;
        }

        else if (first < second)
        {
            return second;
        }
        else
        {
            // ??????
        }
    }

есть ли способ заставить GetMax вернуть строку с сообщением об ошибке или что-то еще, когда first == second.

4 ответов


static void Main(string[] args)
{
    Console.Write("First Number = ");
    int first = int.Parse(Console.ReadLine());

    Console.Write("Second Number = ");
    int second = int.Parse(Console.ReadLine());

    Console.WriteLine("Greatest of two: " + GetMax(first, second));
}

public static int GetMax(int first, int second)
{
    if (first > second)
    {
        return first;
    }

    else if (first < second)
    {
        return second;
    }
    else
    {
        throw new Exception("Oh no! Don't do that! Don't do that!!!");
    }
}

но на самом деле я бы просто сделать:

public static int GetMax(int first, int second)
{
    return first > second ? first : second;
}

вы можете использовать встроенный в Math.Max метод


Так как вы возвращаете большее число, так как оба одинаковы, вы можете вернуть любое число

public static int GetMax(int first, int second)
{
    if (first > second)
    {
        return first;
    }

    else if (first < second)
    {
        return second;
    }
    else
    {
        return second;
    }
}

вы можете еще больше упростить его до

public static int GetMax(int first, int second)
{
  return first >second ? first : second; // It will take care of all the 3 scenarios
}

Если возможно использовать тип списка, мы можем использовать встроенные методы Max() и Min () для идентификации наибольших и наименьших чисел в большом наборе значений.

List<int> numbers = new List<int>();
numbers.Add(10);
numbers.Add(30);
numbers.Add(30);
..

int maxItem = numbers.Max();
int minItem = numbers.Min();