有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java嵌套for循环

这是我不明白的,因为你们可以看到我的外循环应该只打印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) 个答案

  1. # 1 楼答案

    循环要做的第一件事就是输出一个换行符。出现在下一行之后,在yfor循环中打印的任何字符。因此,这将打印5个换行符,每一行后面紧跟着下一行的y字符。最后一次迭代在第6行打印其字符,第6行紧跟在第5个新行字符之后

    System.out.println()移动到yfor循环之后,这样在写入字符后,它就可以正确地结束该行

  2. # 2 楼答案

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

    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. # 3 楼答案

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

    System.out.println();
    

    这意味着您正在将光标移动到下一行(第一行留空)

    然后

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

    负责在该行中打印0123的事件

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

    考虑外环末尾的移动^ {< CD2>}。这样,在将光标移动到下一行之前,您将首先让内部循环打印0123

  4. # 4 楼答案

    外部循环首先打印一个空行,然后在下一个循环上打印0123 试试看

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

    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()

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