申报是更好还是相同?

时间:2014-01-26 01:35:31

标签: java for-loop

java中有什么更好的,它是否会有所不同,如果有什么区别?

public void att(){
        for(int i=0;i<size-1;i++){
            //Do things
        }
        for(int i=0;i<size-1;i++){
            //Do things
        }
}

或:

public void att(){
        int i;
        for(i=0;i<size-1;i++){
            //Do things
        }
        for(i=0;i<size-1;i++){
            //Do things
        }
}

3 个答案:

答案 0 :(得分:3)

像这样我猜...

public void att(){
    int i; //Same variable
    for(i=0;i<size-1;i++){ //Same variable
        //Do things
    }
    for(i=0;i<size-1;i++){ //Same variable
        //Do things
    }
}

-

public void att(){
    for(int i=0;i<size-1;i++){ //Different variables
        //Do things
    }
    for(int i=0;i<size-1;i++){ //Different variables
        //Do things
    }
}

您再声明一个具有相同名称的变量,这意味着您要清除范围。

这可能是对你的问题更有建设性的回答:
Difference between declaring variables before or in loop?

答案 1 :(得分:1)

完全独立的for循环 - 每个都有自己的i变量 - 更好,因为有一个通用的编程指南,变量应该有最窄的范围。在第二个示例中,i的范围超出了使用范围。

两者之间没有性能差异。

答案 2 :(得分:1)

如果您没有遇到特定的效率问题,请不要尝试以这种方式优化您的代码。像Pshemo所说:过早优化是万恶之源。

我在两者之间看到的唯一真正的区别是,第二个是一行更长,因此可读性更差。

另外,如果有的话,我会说在第二种情况下变量是在更高的范围内声明的,我认为这实际上是一件坏事。通常,您希望在范围内声明它们使用的变量,尽可能深地嵌套,因此具有尽可能短的寿命。