在这里,主要是面对刚开始学习Java的对Java中for循环语句局部变量的定义的不清晰的理解
情景一:
在类A中创建一个声明为public的ForTest的方法,在该方法中声明了一个局部变量int i = 0,在for循环中对i进行输出
class A {
public void ForTest() {
int i = 0; //在for循环外声明一个int类型的变量i,初始化为0
for (; i < 5; i++) {
System.out.println(i); //在这里输出的结果是0、1、2、3、4
}
System.out.println(i + 2); //在这里输出的结果是7,因为跳出for循环的时候i < 5是false的,此时的 // i为5,然后 i + 2,输出的是7
}
}
所以:在for循环外声明的变量,进入for循环以后对于其变量的值的一系列操作是有效的
这里通过创建当前类ForTest的main方法,在main方法中来创建类A的对象并且调用ForTest方法
public class ForTest {
public static void main(String[] args) {
A a = new A();
a.ForTest();
}
}
分隔线 ————————————————————————————————————————
情景二:
同样是main方法,这里不作过多解释
public class ForTest {
public static void main(String[] args) {
A a = new A();
a.ForTest();
}
}
class A {
public void ForTest() {
//注意这时候变量i是声明在for循环里的
for (int i = 0; i < 5; i++) {
System.out.println(i); //在这里输出的结果同上0、1、2、3、4
}
//System.out.println(i + 2); //这里变量i只在划定的for语句中有效,跳出循环以后就找不到i了 // 相当于在同一个类下没有定义过,因此这里是找不到i的,无法输出
}
}