【问题标题】:Can someone explain to me why this nested loop function print this way?有人可以向我解释为什么这个嵌套循环函数会这样打印吗?
【发布时间】:2015-05-31 05:49:00
【问题描述】:

下面是运行的代码:

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("-");
    }
}

为什么要打印

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

而不是

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

【问题讨论】:

    标签: java loops nested


    【解决方案1】:

    这是因为没有将您的 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("-");
    
    }
    

    你的问题会解决的。

    【讨论】:

    • 不,那也不会打印* _ ** __ *** ___ **** ____ *****_____******______。它将打印*-*-*-*-*-*-...
    【解决方案2】:

    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("-");
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      相关资源
      最近更新 更多