Eug*_*ene 27 java boolean-operations
在IF条件下避免使用NOT运算符以使代码更易读,这是一个很好的做法吗?我听说if (doSomething())那时比较好if (!doSomething()).
Bil*_*ard 42
这真的取决于你想要完成的事情.如果你没有其他条款那么if(!doSomething())似乎没问题.但是,如果你有
if(!doSomething()) {
...
}
else {
// do something else
}
Run Code Online (Sandbox Code Playgroud)
我可能会颠倒那个逻辑来删除!运算符并使该if子句更加清晰.
hvg*_*des 19
作为一般性陈述,它的好处是使你的if条件尽可能可读.对于你的例子,使用!没关系.问题出在事情的样子
if ((a.b && c.d.e) || !f)
Run Code Online (Sandbox Code Playgroud)
你可能想做点什么
bool isOk = a.b;
bool isStillOk = c.d.e
bool alternateOk = !f
Run Code Online (Sandbox Code Playgroud)
那么你的if语句被简化为
if ( (isOk && isStillOk) || alternateOk)
Run Code Online (Sandbox Code Playgroud)
它只是使代码更具可读性.如果你必须调试,你可以调试isOk变量集,而不必在范围内挖掘变量.它对处理NPE也很有帮助 - 将代码分解为更简单的块总是好的.
Kyl*_*ndo 11
不,!在if..then..else语句中使用运算符绝对没有错.
变量的命名,以及在您的示例中,方法是重要的.如果您正在使用:
if(!isPerson()) { ... } // Nothing wrong with this
Run Code Online (Sandbox Code Playgroud)
然而:
if(!balloons()) { ... } // method is named badly
Run Code Online (Sandbox Code Playgroud)
这一切都归结为可读性.始终瞄准最可读的东西,你不会出错.总是尽量保持你的代码连续,例如,看看比尔蜥蜴的答案.
| 归档时间: |
|
| 查看次数: |
230536 次 |
| 最近记录: |