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

时间:2014-01-04 06:31:10

标签: 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>=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();
    }
}

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

您忘了拨打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;
    }