Aru*_*run 1 java conditional-statements
逻辑上是否有任何区别
if (name.startsWith("a"){
return true;
} else if (name.startsWith("b") {
return true;
} else if (name.startsWith("c") {
return true;
}
Run Code Online (Sandbox Code Playgroud)
和
if(name.startsWith("a") || name.startsWith("b") || name.startsWith("c") ){
return true;
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢第二个,因为它对我来说很优雅.我想明白"有什么不同吗?"
他们是一样的.
第二个肯定更容易阅读,可读性在编程中非常重要.
我喜欢的规则是,如果if-else语句的多个分支产生相同的行为,我将它们组合在一起.(确保它们是完全相同的行为)
在这种情况下:没有.
带有||和&&使用短路的布尔表达式,这意味着如果已经评估过,B则忽略它.因此,第一种选择并不是更有效.A || BAtrue
如果if子句的主体变大,你绝对不想使用第一个版本:
if (name.startsWith("a"){
// lots of code
} else if (name.startsWith("b") {
// lost of the same code
}
Run Code Online (Sandbox Code Playgroud)
代码重复是一个可怕的罪恶,通常是恼人的错误的原因.
| 归档时间: |
|
| 查看次数: |
1226 次 |
| 最近记录: |