何时声明变量

时间:2013-07-16 18:31:06

标签: java

这两种方式之间的差异是否存在差异:

public void method() {
    String data;
    Node current = head;

    while(current != null) {
        data = current.getData();
        // Do something with data
        current = current.getNext();
    }
}

和此:

public void method() {
    Node current = head;

    while(current != null) {
        String data = current.getData();
        // Do something with data
        current = current.getNext();
     }
}

我以前从来没有教授解释过这个问题,并且想知道两者之间是否存在差异以及哪一个“更好”使用。

4 个答案:

答案 0 :(得分:6)

您在那里的第一个定义将使变量在整个方法中可用,这意味着内部的所有元素都将能够访问和修改其值。第二个定义将此变量的范围限制在循环内部。

如果你不打算在循环之外使用变量,那么你也可以在循环中声明它并将该变量的范围保持在该循环中。虽然在循环之外声明它也会起作用,但对于你的目的,它不会特别有用。将它包含在循环中的好处是它只能从内部进行修改,以防止以后对其进行意外更改。

要回答你的问题,从语法上讲,两种方式都是正确的,并且在这种情况下会产生相同的功能结果。

答案 1 :(得分:3)

第一个实例化变量数据,并给它范围,以便它可以在while循环之外使用。在第二种实现中,数据只能在while循环中使用。如果您不打算在while循环之外使用数据,建议您在循环中声明它。这样可以防止在循环外进行的任何意外修改。

要详细了解不同的范围,请访问此link

答案 2 :(得分:0)

当您在循环内声明变量时,您无法在其他任何位置访问它们。如果它们是在循环外定义的,则可以在适当的范围内使用它们。对于函数和类中定义的变量也是如此。这都是适当范围的问题。

答案 3 :(得分:0)

如果在循环后有代码,则无法在第二个中访问变量数据。因为你在while循环块中声明它。