for(int i=0; i<10; i++) {
     int a = 10;
     System.out.printf(a+i);
}变量 i 是定义了1次
变量 a 呢??是定义了1次还是10次??

解决方案 »

  1.   

    i是一次.
    int a=10;这个是每次进入循环后定义的,结束当次循环就不存在了.
      

  2.   

    a是for块里的  每一次执行for循环  都会重新创建的吧  这是从字面上看的  我不知道有没有做优化啊
      

  3.   

    10次for(int i=0; i<10; i++) {
                int e = i;
                System.out.println(e+i);
           }/* output:
    0
    2
    4
    6
    8
    10
    12
    14
    16
    18
      

  4.   

    10次,
     0:   iconst_0
     1:   istore_1
     2:   iload_1
     3:   bipush  10
     5:   if_icmpge       26
     8:   bipush  10      //a
     10:  istore_2
     11:  getstatic       #2; //Field java/lang/System.out:Ljava/io/PrintStream;
     14:  iload_2
     15:  iload_1
     16:  iadd
     17:  invokevirtual   #3; //Method java/io/PrintStream.println:(I)V
     20:  iinc    1, 1
     23:  goto    2
     26:  return
      

  5.   

    每循环一次就重新定义int a