布尔和回归

时间:2014-10-18 06:20:23

标签: java if-statement methods boolean return

public boolean percentDepreciatedOutOfRange() {
    if (percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX) {
        return true;
    }
    else {
        return false;
    }
}

上面的代码是否可以在没有else语句的情况下编写,并且在if语句之后只有return false;并且仍然具有相同的结果?如果是这样,为什么?这就是我的意思

public boolean percentDepreciatedOutOfRange() {
    if (percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX) {
        return true;
    }
    return false;
}

3 个答案:

答案 0 :(得分:4)

你应该写

public boolean percentDepreciatedOutOfRange() {
    return percentDepreciated < DEPRECIATION_MIN || percentDepreciated > DEPRECIATION_MAX);
}

更具可读性。避免使用

之类的陈述
If (xxx) { return true; }
else { return false; }

因为if只会在表达式周围添加噪音。

这是合法的原因是布尔类型在评估if表达式和方法的返回类型时是相同的。

答案 1 :(得分:1)

因为return实际上退出了函数(方法)。

如果未输入if,则其余代码将正常执行。

由于您有boolean returns,因此在函数末尾有return false表示截至最后的所有内容都失败。

您甚至可以将其重写为:

public boolean percentDepreciatedOutOfRange() {
    if (percentDepreciated < DEPRECIATION_MIN) {
        return true;
    }
    if (percentDepreciated > DEPRECIATION_MAX) {
        return true;
    }

    return false;
}

清楚说明方法中的测试。

答案 2 :(得分:0)

我喜欢的另一种方式:

  1. 将返回变量定义为具有默认值的第一个语句。
  2. 在各种商业逻辑中更改方法中的变量
  3. 返回变量值(单一返回语句)

    public boolean percentDepreciatedOutOfRange(){     布尔状态= false;     status = percentDepreciated&lt; DEPRECIATION_MIN || percentDepreciated&gt; DEPRECIATION_MAX;     返回状态; }