变量数量未知的函数

Function with unknown amount of variables

我看到有人创建了一个参数数量未知的函数:

public static double calculator(double ... value){
    double result=0d;

    for(int i=0;i<?;i++){
        result+=value;
    }

    return result
}

现在我正在尝试创建一个 for 循环,该循环将 运行 的次数与输入的参数数量相同,因此:

double calc = calculator(1,2,3,4,5)

这将使 for 循环 运行 5 次。

在内部,value 是一个数组,因此您可以这样对待它:

for(int i = 0; i < value.length; i++) {
    result += value[i];
}

您可以使用 advance for 循环(每个循环 a.k.a),如下所示:

for(int element : value){
    result+=element;
}

等同于:

for(int i = 0;i < value.length; i++){
     result+=value[i];
}

省略号运算符 (...) 只是数组的语法糖。换句话说,方法本身解释参数如下:

public static double calculator(double[] value)

一旦你理解了这一点,for 循环就变得显而易见了——你只需要迭代到 value.length:

for (int i = 0; i <value.length; i++) {
    result += value[i];
}

或者更好的是,只需使用增强的 for 循环:

for (v : value) {
    result += v;
}

你也可以使用for each循环,

 for (double d : value) {

 }