Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的math.max是否可以使用IF语句?_Java_If Statement_Nested - Fatal编程技术网

Java中的math.max是否可以使用IF语句?

Java中的math.max是否可以使用IF语句?,java,if-statement,nested,Java,If Statement,Nested,我想知道是否可以在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) {

我想知道是否可以在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语句。

Java中的
if
是一个语句而不是一个表达式,这意味着它不返回值。只要能够提供有意义的
else
部分,就可以使用条件表达式(也称为三元运算符):

Math.max(obj1.getIsTrue() ? obj1.getInt() : 0, obj2.getIsTrue() ? obj2.getInt() : 0);

还要注意,
Math.max()
只接收2个参数,而不是像您预期的那样接收3个。

或者一个三元参数<代码>obj1.getIsTrue()?obj1.getInt():0为什么不问问附近的编译器呢?这个.b是布尔值,但是newBool是int。这个.i(还有哪个?)是int,但是你声明返回一个字符串。getIsTrue也一样。您无法想象,编译器在错误检测方面有多方便!去,拿一个!我复制了代码,但忘记更改变量类型。这是正确的。