有人可以向我解释为什么这个嵌套循环函数以这种方式打印吗?

Can someone explain to me why this nested loop function print this way?

下面是运行的代码:

public static void main(String[] args) 
{
    for (int i=1; i<=6; i++) 
    {
        for (int j=1; j<=i; j++) 
        System.out.print("*");
        System.out.print("-");
    }
}

为什么打印

*-**-***-****-*****-******-

而不是

* _ ** __ *** ___ **** ____ *****_____******______

System.out.print("-"); 不在内循环中。因此,外循环的每次迭代只打印一次。

当您正确缩进代码时,这会变得更加清晰:

for (int i=1; i<=6; i++) 
{
    for (int j=1; j<=i; j++) 
        System.out.print("*");
    System.out.print("-");
}

即使它在内部循环中(通过添加大括号),您仍然无法获得预期的输出,因为在每个 * 之后您会得到一个 -

为了获得预期的输出,您需要两个内部循环:

for (int i=1; i<=6; i++) 
{
    for (int j=1; j<=i; j++) 
        System.out.print("*");
    for (int j=1; j<=i; j++) 
        System.out.print("-");
}

这是因为没有将您的 print("-") 放入任何内部循环中,将您的循环更改为:

for (int i=1; i<=6; i++) 
{
    for (int j=1; j<=i; j++) 
        System.out.print("*");
    for (int j=1; j<=i; j++) 
        System.out.print("-");

}

你的问题就会解决。