我的IDE(IntelliJ IDEA)告诉我,我可以选择删除此if语句的大括号:
if (objectIsOfTypeFoo) {
if (objectOfTypeFooIsShared) {
// do something with Object of type Foo knowing that it's shared...
} else {
// do something with Object of type Foo knowing that it's not shared...
}
} else if (objectIsOfTypeBar) {
...
}
成为:
if (objectIsOfTypeFoo) if (objectOfTypeFooIsShared) {
// do something with Object of type Foo knowing that it's shared...
} else {
// do something with Object of type Foo knowing that it's not shared...
} else if (objectIsOfTypeBar) {
...
}
我理解这是有道理的,并且很容易失去缩进,但我担心的是可读性可能会受到影响。后者看起来更干净,但节省的空间值得潜在的混乱吗?
我认为两者之间的性能差异是微不足道的,如果有的话。
作为一个后续问题:是否有多少'if(条件)可以放在一行中,或者更确切地说它变得太多了?
答案 0 :(得分:8)
我投票支持你已有的方式。
我甚至不使用它:
if(foo)
return bar;
我喜欢这样:
if(foo){
return bar;
}
“必须编写程序供人们阅读,并且只是偶然让机器执行”
答案 1 :(得分:4)
始终使用牙箍。有一天,你会想要在你的if或else块中加上第二个声明,然后你会希望你有。但是,你真的在进行instanceof
检查吗?您是否可以重新编写程序以将其转换为多态对象行为?
答案 2 :(得分:2)
我更喜欢第一个。我认为单行上有多个ifs的位是不可读的。
抱歉,我打算投票结束。这将是一场没有答案的辩论。
答案 3 :(得分:1)
建议总是使用大括号,但有没有身体使用大括号的情况,最好不要使用大括号,因为它更具可读性
if(condition){
} else if (condition) {
...
}else if (condition3){
}
如果你总是使用大括号,那就像这样。可能我在某个地方犯了错误。
if(condition){
} else{
if (condition) {
...
}else {
if (condition3){
}//end if
}//end else
}//end else
所以我认为使用总是取决于可读性,就像上面说的那样,程序必须是为了人们阅读而编写的,并且只是为了机器的执行而偶然。