Метод, возвращающий большее значение двух чисел
Так у меня есть этот код
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;
}
Так как вы возвращаете большее число, так как оба одинаковы, вы можете вернуть любое число
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();