Java for循环初始化语句中的变量作用域
在Java中,如果变量在for循环外部声明,那么for循环初始化中的变量作用域是什么?我有以下两个案例:Java for循环初始化语句中的变量作用域,java,variables,Java,Variables,在Java中,如果变量在for循环外部声明,那么for循环初始化中的变量作用域是什么?我有以下两个案例: 无效案例 //无效,未知i 私有整数i=0; 对于(i=0;i
//无效,未知i
私有整数i=0;
对于(i=0;i<10;i++){
}
private int i=0;
void foo(){
对于(i=0;i<10;i++){
}
}
在第二种情况下,为什么可以访问我?为什么要在方法中声明一个变量
private
?变量的作用域“关心”的只是它的定义位置,而不是它是否在循环中使用或该循环在何处。在第二种情况下,为什么可以访问我?在第二种情况下,我是一个实例变量。在第一种情况下,它不应该编译。
// Invalid, unknown i
private int i = 0;
for (i = 0; i < 10; i++) {
}
private int i = 0;
void foo() {
for (i = 0; i < 10; i++) {
}
}