求组求助,大神们戳进来看一下
为什么把初始变量int从for语句里面拿出来定义在前面的话,就只能输出一行;而把初始变量定义I在for循环的括号里面就能正确输出三行。
这两个前后顺序到底有什么区别吗?
为什么把初始变量int从for语句里面拿出来定义在前面的话,就只能输出一行;而把初始变量定义I在for循环的括号里面就能正确输出三行。
这两个前后顺序到底有什么区别吗?
我亲自测试了一遍,发现如果int j定义在第一个for循环里面就不会有问题,如:
public static void funtion1() { for (int i = 0; i <= 4; i++) { for (int j = 0; j <= 4; j++) { System.out.print(i + "" + j + " "); } System.out.println(); } } public static void funtion2() { int i = 0; for (; i <= 4; i++) { int j = 0; for (; j <= 4; j++) { System.out.print(i + "" + j + " "); } System.out.println(); } } public static void main(String[] args) { System.out.println("funtion1"); Test1.funtion1(); System.out.println("========================="); System.out.println("funtion2"); Test1.funtion2(); }
结果:
funtion1
00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44
=========================
funtion2
00 01 02 03 04
10 11 12 13 14
20 21 22 23 24
30 31 32 33 34
40 41 42 43 44
由上可得知,如果将int j 定义在外面,那么当第一层(i = 0)for循环后j的值就一直等于5,那么从第二层(i = 1)开始不会再进入j这一层循环,但如果放在里面则可以保证顺利进入j这一层循环。
望采纳!
举报