Java 为什么我的三元布尔运算符显示相反的结果

Java 为什么我的三元布尔运算符显示相反的结果,java,boolean,return,operator-keyword,ternary,Java,Boolean,Return,Operator Keyword,Ternary,三元运算符不应该用作arg吗?真:假???因此,如果持续时间和石油量大于字段变量的规定量,则应返回true。。但结果却是false public class test12 { int duration = 260; int petroleum = 300; boolean result; public void checktrain(){ boolean result = duration>=250 && petroleum

三元运算符不应该用作arg吗?真:假???因此,如果持续时间和石油量大于字段变量的规定量,则应返回true。。但结果却是false

public class test12 {
    int duration = 260;
    int petroleum = 300;
    boolean result;

    public void checktrain(){
        boolean result = duration>=250 && petroleum>=235? true : false;
        this.result = result;
    }

    public void run(){
        System.out.print(result);
    }

    public static void main(String args[]){
        test12 tr = new test12();
        tr.run();
    }
}

结果是
false
,因为您从未调用过方法
checktrain
,成员变量结果的默认值是
false

结果是
false
,因为您从未调用方法
checktrain
,成员变量结果的默认值是
false

您忘记了调用
checktrain()
。使其保持布尔值的默认值
false

尝试调用该方法

public static void main(String args[]){
test12 tr = new test12();
tr.checktrian();
tr.run();
}
检查训练方法可以简单地写为

public void checktrain(){
this.result= duration>=250 && petroleum>=235;
}
甚至可以通过编写

  public boolean checktrain(){
    return  duration>=250 && petroleum>=235;
    }

您忘记调用
checktrain()
。因此它保持布尔值的默认值
false

尝试调用该方法

public static void main(String args[]){
test12 tr = new test12();
tr.checktrian();
tr.run();
}
检查训练方法可以简单地写为

public void checktrain(){
this.result= duration>=250 && petroleum>=235;
}
甚至可以通过编写

  public boolean checktrain(){
    return  duration>=250 && petroleum>=235;
    }

根本不需要三元运算符。您只需执行
布尔结果=持续时间>=250&&petroleum>=235
。根本不需要三元运算符。您只需执行
boolean result=duration>=250&&petroleum>=235