Использование переменного числа аргументов - C#
Формулировка задачи:
Имеется метод MinVal, который принимает переменное число аргументов и возвращает минимальный. Если в метод не было передано аргументов, то выводится соответствующее сообщение, но вместе с этим после сообщения "Ошибка: нет аргументов." выводится ноль. Как можно сделать так, чтобы ноль не выводился?
Результатом программы будет:
class Min
{
public int MinVal(params int[] nums)
{
if (nums.Length == 0)
{
Console.WriteLine("Ошибка: нет аргументов.");
return 0;
}
int m = nums[0];
for (int i = 1; i < nums.Length; i++)
{
if (nums[i] < m)
m = nums[i];
}
Console.Write("Наименьшее значение равно ");
return m;
}
}
class MinDemo
{
static void Main()
{
Min ob = new Min();
int min;
int a = 10, b = 20;
min = ob.MinVal();
Console.WriteLine(min);
min = ob.MinVal(a, b);
Console.WriteLine(min);
min = ob.MinVal(3, 5, a, 8, 9, b, 4);
Console.WriteLine(min);
Console.ReadLine();
}
}Ошибка: нет аргументов. 0 Наименьшее значение равно 10 Наименьшее значение равно 3
А хотелось бы видеть такой вывод:Ошибка: нет аргументов. Наименьшее значение равно 10 Наименьшее значение равно 3
Решение задачи: «Использование переменного числа аргументов»
textual
Листинг программы
class Program {
static void Main(string[] args) {
Min ob = new Min();
int a = 10, b = 20;
ob.PrintMinValue();
ob.PrintMinValue(a, b);
ob.PrintMinValue(3, 5, a, 8, 9, b, 4);
Console.ReadLine();
}
}
class Min {
/// <summary>
/// Метод, определяющий минимальное целое число в последовательности
/// </summary>
/// <param name="nums">Последовательность чисел</param>
public int MinVal(params int[] nums) {
if (nums.Length == 0) {
return 0;
}
int m = nums[0];
for (int i = 1; i < nums.Length; i++) {
if (nums[i] < m)
m = nums[i];
}
return m;
}
/// <summary>
/// Метод, выводящий информацию о минимальном числе
/// </summary>
/// <param name="sums"></param>
public void PrintMinValue(params int[] sums) {
int min = MinVal(sums);
if (min == 0) {
Console.WriteLine("Ошибка: нет аргументов");
}
else {
Console.WriteLine("Минимальный элемент равен {0}", min);
}
}
}