我想知道是否可以在math.max中使用if语句。 例如,如果你有一个像这样的对象:
public class Obj {
private int i;
private boolean b;
public void setInt(int newInt) {
this.i = newInt;
}
public void setBool(boolean newBool) {
this.b = newBool;
}
public int getInt() {
return this.i;
}
public boolean getIsTrue() {
return this.b;
}
}
初始化2个新对象并定义所有值后,是否可以执行以下操作:
System.out.println(Math.max(if(obj1.getIsTrue()) {obj1.getInt()}, if (obj2.getIsTrue()) {obj2.getInt()}));
我知道可以使用数组和for循环来完成,所以我不会问它是否可能,只是可以以这种方式嵌套if语句。
答案 0 :(得分:6)
Java中的if
是语句,而不是表达式,这意味着它不会返回值。您可以使用的是条件表达式(也称为三元运算符),只要您能提供有意义的else
部分:
Math.max(obj1.getIsTrue() ? obj1.getInt() : 0, obj2.getIsTrue() ? obj2.getInt() : 0);
另请注意,Math.max()
只接收2个参数,而不是您所期望的3个参数。