if ( a > b) {
return true;
}
return false;
使用上述代码,Netbeans会发出"Redundant if statement"
警告,并建议将其更改为:
return a > b;
我认为第一个版本更易于阅读,并且更喜欢在我的代码中使用它。我想知道它与建议的相比是否有任何缺点。
答案 0 :(得分:8)
此
if ( a > b) {
return true;
}
return false;
包括在堆栈上推送a
的值,在堆栈上推送b
的值,弹出两者并检查>
的结果。如果它是true
,请在堆栈上推送true
的值,然后弹出并返回它。如果它是false
,则在字节码中进一步向下分支,在堆栈上推送false
的值,弹出它并返回。
在
的情况下return a > b;
您在堆栈上推送a
和b
的值,然后弹出值并将>
的结果推送到堆栈上。然后弹出该值并将其返回。
所以
return a > b;
在字节码级别,不明显更高效。
(IMO我发现第二个更具可读性,我相信大多数人也会这么做。)
答案 1 :(得分:0)
从编译器的角度来看,您的代码确实包含了一些额外的计算。需要为布尔值(你返回)分配内存并进行> b计算。 A> b返回布尔值,所以如果你返回它很容易。 虽然他们都有相同的逻辑。