.for与while的区别
本来一直以为for和while没有太大的区别,今天看了毕老师的视频才恍然大悟,for循环定义的变量值只在for循环内部有效,随着for循环的结束,变量将会在内存中被释放掉;
[java] view plaincopy
public class Sentence {
public static void main(String[] args) {
for(int x=0;x<3;x++){
System.out.println(x);
}
System.out.println(x); // 编译失败,for循环结束后x在内存中被释放掉
}
}
while循环定义的变量在while循环的外部有效,不随着while循环的结束被释放 可以正常的编译并运行处结果。
[java] view plaincopy
public class Sentence {
public static void main(String[] args) {
int y =0;
while(y<3){
System.out.println(y);
y++;
}
System.out.println(y); //正常编译并可以运行出结果
}
}
上面是看到的一个兄弟的笔记总结,他上面的while语句定义的变量int y ; ,是定义在while循环外面的,当然不会随着while循环而消失,for循环中的int x 是定义在for循环中的,就是局部变量,肯定会随着for循环运行完后出栈。
问题1:“while循环定义的变量在while循环的外部有效,不随着while循环的结束被释放”这句话变量根本就没在while循环里面定义呀。。是吧??
问题2:定义在主函数里面的变量,是主函数这个类的成员变量,只会随着主函数这个类消失而消失吧?
|