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;
}
答案 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)
我喜欢的另一种方式:
返回变量值(单一返回语句)
public boolean percentDepreciatedOutOfRange(){ 布尔状态= false; status = percentDepreciated&lt; DEPRECIATION_MIN || percentDepreciated&gt; DEPRECIATION_MAX; 返回状态; }