我的代码如下:
public class MyJava{
public static void main(String[] args){
for(int i=0;i<20;i++){
int j=10;
}
}
}问:这里的int j=10,这条语句执行了几次,不是说变量定义在同一个作用域内不能定义两次吗?但为什么编译和运行时都能通过?

解决方案 »

  1.   

    你这就定义了一次啊,若是再加一个int j = 10;才是两次呢!j的作用域是for循环内部!
      

  2.   

    int j=10 这句话执行了20次 
    每一次循环结束后 j 就没有了 
    就是说你第一次循环结束 
    第二次开始时还没有 j 这个变量 
    这不是重复定义
      

  3.   

    en ,j的作用域是for内部。下次循环J就消失了
      

  4.   

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

  5.   

    运行了 0到19 一共20次。 J只在FOR的范围内运行 只定义了一次 谢谢