我在循环内的else
块内部有一个复杂的条件。所以我决定形成一些新变量来简化这种情况。我应该在哪里声明这些变量?
//here 1
for (...) {
//here 2
if(...) {
} else {
//here 3
if (cond1 && cond2){}
}
}
答案 0 :(得分:4)
你应该尽可能地将变量声明为最接近它们的用法,并且在最小的"范围可能。
在您的示例中,如果仅在示例中使用cond1,cond2时使用它们,则应在here 3
中声明它们。
答案 1 :(得分:2)
您应该在需要的地方声明变量,因此在这种情况下可能在here 3
。
答案 2 :(得分:1)
可能最好的解决方案是:
boolean cond1,cond2 = false;
for (...) {
//here 2
if(...) {
} else {
cond1 = ...
cond2 = ...
if (cond1 && cond2){}
}
}
这允许您在每次迭代时不为变量分配内存。