Java嵌套for循环

时间:2015-02-24 00:42:21

标签: java loops

这是我不明白的,因为你可以看到我的外环应该只打印5行但是当我添加我的内部循环它打印6行一个空白和5 0123这里发生了什么?为什么我的外环打印了6行?

public static void main (String[] args) {


    int x;
    int y;

        for(x=1; x<=5; x++){
            System.out.println();
                for (y=0; y<4; y++){
                    System.out.print(y);
            }

        }

}

5 个答案:

答案 0 :(得分:1)

public static void main (String[] args) {
    //dont need to declare variables here. they can be declared in loop like below
    for(int x=0; x<5; x++){
        System.out.println(); //this is called before inner loop, printing a blank line
            for (int y=0; y<4; y++){
                System.out.print(y); //print 0-3 
        }
    }
}

如果要在内循环后打印空白行,请在内循环后放置System.out.println()

使用调试器逐步执行代码应该是您的第一个故障排除步骤。您还应该像我上面所做的那样标准化循环变量检查。

答案 1 :(得分:0)

循环首先做的是输出换行符。在y for循环中出现的任何字符出现在下一行之后。因此,这会打印5个换行符,每个换行符后跟下一行的y个字符。最后一次迭代在第6行打印其字符,该行跟随打印的第5个换行符。

System.out.println() y循环之后移动for,以便在写完字符后正确结束该行。

答案 2 :(得分:0)

您正在实际输出之前打印新行。在内部for循环后移动System.out.println();

public static void main (String[] args) {
    int x;
    int y;

    for(x=1; x<=5; x++){
        for (y=0; y<4; y++){
            System.out.print(y);
        }
        System.out.println();
    }
}

<强>输出

0123
0123
0123
0123
0123

答案 3 :(得分:0)

你的外循环中的第一条指令是

System.out.println();

表示您将光标移动到下一行(将第一行留空)。

然后

for (y=0; y<4; y++){
    System.out.print(y);
发生了

,负责在该行中打印0123

然后再次在外循环光标的下一次迭代中移动到下一行并打印0123。

考虑在外循环结束时移动System.our.println()。这样,在将光标移动到下一行之前,首先让内循环打印0123

答案 4 :(得分:0)

你的外环首先打印一个空白行,然后在下一行打印0123 尝试

int x;
    int y;

        for(x=1; x<=5; x++){
                for (y=0; y<4; y++){
                    System.out.print(y);
            }
            System.out.println();

        }