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

在循环体内部定义一个变量,该变量是只定义了1次,还是和循环次数相关?
Java code
for(int i=0; i<10; i++) {
     int a = 10;
     System.out.printf(a+i);
}


变量 i 是定义了1次
变量 a 呢??是定义了1次还是10次??

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

Java code
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

------解决方案--------------------
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