变量应该在哪里声明?

时间:2015-03-10 09:08:23

标签: java

我在循环内的else块内部有一个复杂的条件。所以我决定形成一些新变量来简化这种情况。我应该在哪里声明这些变量?

//here 1
for (...) {
   //here 2
   if(...) {

   } else {
      //here 3
      if (cond1 && cond2){}
   }
} 

3 个答案:

答案 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){}
       }
    } 

这允许您在每次迭代时不为变量分配内存。