日期:2014-05-20  浏览次数:20664 次

定义变量的问题
我的代码如下:
public class MyJava{
public static void main(String[] args){
for(int i=0;i<20;i++){
int j=10;
}
}
}

问:这里的int j=10,这条语句执行了几次,不是说变量定义在同一个作用域内不能定义两次吗?但为什么编译和运行时都能通过?

------解决方案--------------------
20次
每一次循环结束后j就没有了
就是说你第一次循环结束
第二次开始时还没有j这个变量
这不是重复定义
------解决方案--------------------
探讨
20次
每一次循环结束后j就没有了
就是说你第一次循环结束
第二次开始时还没有j这个变量
这不是重复定义

------解决方案--------------------
int j=10; 执行了20次,大括号的作用相当于开启了一个新的作用域,每次进入大括号这个作用域便产生,离开时便结束,for循环的大括号也是如此。虽然这个j被定义了20次,但每次都不是同一个j ,正所谓一个人不可能两次踏进同一条河流。