java可选参数

我想在java中编写一个平均方法,它可以消耗N个项目,返回它们的平均值:

我的想法是:

public static int average(int[] args){ int total = 0; for(int i=0;i<args.length;i++){ total = total + args[i]; } return Math.round (total/args.length); } //test it average(1,2,3) // s**hould return 2. 

如何更改我的方法以使用任何数量的参数而不是int [] args所以可以按我想要的方式工作? 干杯

Java 5支持varargs ,这就是你想要的。

例如

 public static int average(Integer... ints) { for (Integer i : ints) { // sum here... } } 

从Java 5开始,有一个通常称为varargs的function可以实现所需的function。

这是一个小例子:

 public static int add(int... nums) { int total = 0; for (int n : nums) total += n; return total; } public static void main(String[] s) { // The following prints "10" System.out.println(add(1, 2, 3, 4)); } 

这是可选的参数版本(几乎没有代码更改……)

 public class Spike2 { public static final void main(String argv[]) { System.out.println(average(1,2,3)); } public static int average(int... args){ int total = 0; for(int i=0;i 

使用迭代器更改:

 public class Spike2 { public static final void main(String argv[]) { System.out.println(average(1,2,3)); } public static int average(int... args){ int total = 0; for(int i: args){ total = total + i; } return Math.round (total/args.length); } } 

function average(){

 var total = 0; if(arguments.length > 0) { for(var i = 0, n = arguments.length; i < n; i++) { total += parseFloat(arguments[i]); } total /= arguments.length; } return total; 

}