变量数量未知的函数
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) {
}
我看到有人创建了一个参数数量未知的函数:
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) {
}