Кажется, что должен быть способ записи вызовов product() с помощью цикла for(). Я не могу понять, как это сделать. Кто-нибудь знает дорогу?Циклические вызовы методов с различными параметрами
// store numbers
int[] i = { 1, 7, 2, 4, 6, 54, 25, 23, 10, 65 };
System.out.println(product(i[0]));
System.out.println(product(i[0], i[1]));
........
System.out.println(product(i[0], i[1], i[2], i[3], i[4], i[5], i[6], i[7], i[8], i[9]));
public static int product(int... num) {...}
Я уже писал продукт, мне просто нужно позвонить продукт с аргументами из продукта (я [0]) к продукту (я [0], я [1], я [2] ..., [9]).
Окончательный код:
// Calculate product of any amount of numbers
public static void main(String[] args)
{
// create Scanner for input
Scanner in = new Scanner(System.in);
// store numbers
int[] array = { 1, 7, 2, 4, 6, 14, 25, 23, 10, 35 };
for (int j = 1 ; j <= array.length; j++) {
// Construct a temporary array with the required subset of items
int[] tmp = new int[j];
// Copy from the original into the temporary
System.arraycopy(array, 0, tmp, 0, j);
// Make a call of product()
System.out.println(product(tmp));
} // end for
} // end method main
public static int product(int... num)
{
// product
int product = 1;
// calculate product
for(int i : num)
product *= i;
return product;
} // end method product
Это несколько, что я ищу, но мое назначение хочет, чтобы вызвать метод с переменным количеством аргументов, такие как продукт (я [0]), продукт (я [0], i [1]) и т. д. Было бы очень удобно использовать ... символы, как в (для (int j = 0; j
Hosch250
@ user2509848 Это именно то, что произойдет, когда вы запустите код из ответа: переменное количество аргументов является «синтаксическим сахаром» поверх создания массива, т. е. когда вы делаете 'product (i [0], i [1], i [2])', компилятор производит 'product (new int [] {i [0], i [1], i [2]})' за сцены перед вызовом – dasblinkenlight
ОК. Я спрошу своего учителя, если все в порядке. Кстати, когда я проверил ваш код, моя IDE не смогла найти arrayCopy. Что мне нужно импортировать? – Hosch250