Список аргументов переменной длины

При вызове метода можно передавать переменное количество аргументов – vararg (сокращение от variable-length arguments – список аргументов переменной длины). Метод, который принимает переменное количество аргументов, называют методом с переменным количеством аргументов. Такие методы удобны тогда, когда количество аргументов заранее не известно.

Для указания списка аргументов переменной длины используют три точки (...). Например, вот так бы выглядел заголовок метода с переменным количеством аргументов для расчета среднего арифметического целых аргументов:

static double average (int... v) {}

Эта синтаксическая конструкция указывает компилятору, что метод average() может вызываться без аргументов или с несколькими аргументами. Параметр v неявно объявляется как массив типа int[]. Таким образом, внутри метода average() доступ к параметру v осуществляется с использованием синтаксиса обычного массива.


Задача 5.2. Опишите метод с переменным количеством аргументом, вычисляющий среднее арифметическое значение целых аргументов.

Объяснение: в методе main() метод average() вызывается с различным количеством аргументов, в том числе и вовсе без аргументов. Аргументы автоматически помещаются в массив и передаются параметру v. В случае отсутствия аргументов длина массива равна нулю. Поэтому в этом случае при нахождении среднего арифметического значения возвращается значение NaN – не число.

class MyClass {

static double average (int...v)

{ double s=0;

for(int x: v) s+=x;

return s/v.length;

}

public static void main(String args[])

{

System.out.printf("Без аргументов:s=%5.2f%n",average());

System.out.printf("C аргументом 10:s=%5.2f%n",average(10));

System.out.printf("C аргументами 10,20,30:s=%5.2f%n",

average(10,20,30));

}}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: