【发布时间】:2015-01-19 09:04:42
【问题描述】:
我写了下面的代码,把自己弄糊涂了。
if(condition1)
if(condition2){
doStuff()
}
else {
doOtherStuff();
}
当它像这样缩进时,看起来 else 属于条件 1 if。但是如果我们改变一些空格,它看起来就像是 condition2 的一部分:
if(condition1)
if(condition2){
doStuff()
} else {
doOtherStuff();
}
那么它属于哪个?为了更清楚,我把条件1放在括号里,但是哪个是正确的?
【问题讨论】:
-
在两个(全部)if 上都使用显式大括号
-
不要避免可选的大括号
-
一般的经验法则是这样。else总是属于封闭的if(最近的if)
-
在问世人之前尝试一下有多难?
-
如果您有 IDE,它会为您缩进代码以使嵌套更明显。
标签: java if-statement semantics