java中的for循环和其他语言中for循环很不一样,不知道你发现了吗?下面来看一段代码
/**
测试for循环中 变量重新初始化的原理,可以被重复初始哈很是奇怪啊!!!
*/
class ForTest
{
public static void main(String[] args){
for(int x=0;x<5;x++){
if (x==0)
{
int temp=x;
System.out.println("temp="+temp);
}else{
//System.out.println("temp="+temp); //看来是必须先定义才可以啊
int temp=x;
System.out.println("temp="+temp);
}
//System.out.println("temp="+temp); //变量的作用域有限
}
}
}
对于循环体中的定义的变量,java语言会在每一次开始循环的时候为其分配内存地址,但是一旦此次结束就会释放内存。你看本案例中就是。看临时变量temp
在第一次循环的时候,必须首先进行初始化定义,这是必须的;但是呢,第二次循环的时候呢,执行else语句中的内容的时候,若是首先执行叔叔语句的话,输出语句中包含有temp变量,就会发生编译错误。有此可以说了:for循环在java中,其循环体内的定义的临时变量,每一次循环都会重新定义,一次循环完成就会释放空间。
|
|