求组求助,大神们戳进来看一下

来源:4-14 Java 循环语句之多重循环

weibo_Cc_Maiden月_03594558

2016-07-11 10:19

5783019f00017d4605000552.jpg

578301a0000118c604560636.jpg

为什么把初始变量int从for语句里面拿出来定义在前面的话,就只能输出一行;而把初始变量定义I在for循环的括号里面就能正确输出三行。

这两个前后顺序到底有什么区别吗?

写回答 关注

3回答

  • 损失函数
    2016-07-11 10:40:21
    已采纳

    我亲自测试了一遍,发现如果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这一层循环。

    望采纳!

    weibo_...

    好像模糊的懂了一丢丢,非常感谢

    2016-07-11 10:49:39

    共 1 条回复 >

  • 执念丶丶
    2016-07-11 11:51:38

    第一种情况 :变量j 是在for循环内定义的   在每次进入第二个for循环 都将它初始化为 1 

    第二种情况: 变量 j 是属于main 方法的 ,在第二个for 循环结束之后 j的值为 9 ,跳到第一个for循环 将不再进入内循环了

    weibo_...

    好清晰明了,谢谢诶

    2016-07-11 14:07:48

    共 1 条回复 >

  • 人在梦游中
    2016-07-11 10:41:55

    应该是只打印了一行*,然后输出了7个换行吧

    weibo_...

    为什么?

    2016-07-11 10:50:53

    共 1 条回复 >

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1165172 学习 · 17581 问题

查看课程

相似问题