是否可以根据 boolean 值在函数中插入参数?
例如,我有这段代码:
Math.min(boolA ? doubleValueA, boolB ? doubleValueB);
提前致谢!
最佳答案
如果 boolA
或 boolB
为 false,则使用默认值(例如 Double.MAX_VALUE):
Math.min(
(boolA) ? doubleValueA : Double.MAX_VALUE,
(boolB) ? doubleValueB : Double.MAX_VALUE
);
编辑
如果您有一个想要查找最小值的变量列表,但前提是设置了相应的 boolean 变量,请将列表加载到数组中并查找最小值:
ArrayList<Double> myArray = new ArrayList<Double>();
if (boolA) myArray.add(doubleValueA);
if (boolB) myArray.add(doubleValueB);
// etc
double minValue = Double.MAX_VALUE; // start with largest possible value
// loop through and replace with any smaller values
for (double val : myArray)
if (val < minValue) minValue = val;
// val now contains the smallest value
编辑2
这也可以普遍应用于其他函数。有选择地将参数添加到数组中,然后将该数组传递给函数。如果您可以控制函数定义,则可以使用 variable arguments让事情变得更简单。
public double MyMin(double... myArray) {
double minValue = Double.MAX_VALUE; // start with largest possible value
// loop through and replace with any smaller values
for (double val : myArray)
if (val < minValue) minValue = val;
// val now contains the smallest value
return val;
}
关于java - 根据 boolean 值插入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5224623/