【问题标题】:Java to print number triangle with nested loopJava用嵌套循环打印数字三角形
【发布时间】:2013-03-17 17:37:32
【问题描述】:

我正在尝试使用 Java 中的嵌套循环打印以下内容:

1 2 3 4 5 6
1 2 3 4 5
1 2 3 4
1 2 3
1 2
1

但结果如下:

1 2 3 4 5 6
2 3 4 5 6
3 4 5 6
4 5 6
5 6
6

这是我的代码:

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

任何帮助将不胜感激。谢谢

【问题讨论】:

  • 您应该在打印循环中再次使用不同于j 的变量。提示:看看你在里面设置了什么j
  • 对代码块使用一致且符合逻辑的缩进。代码的缩进是为了帮助人们理解程序流程。

标签: java for-loop nested-loops


【解决方案1】:
int n = 7;

for (int i = 1; i <= n; i++) {

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

}

【讨论】:

    【解决方案2】:

    你的程序应该是 -

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

    谢谢

    【讨论】:

      【解决方案3】:

      在第二个内部循环中设置此条件。

      for (int j = 1; j <= 7 - i ; j++) 
      

      编辑:

      完整的代码是

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

      【讨论】:

        【解决方案4】:
        for (int i = 2; i <= 7; i++) {
            for (int j = 2; j < i; j++) {
                System.out.print("  ");
            }
            for (int j = i; j <= 7; j++) {
                System.out.print(j-1 + " ");
            }
            System.out.println();
        }
        

        【讨论】:

          【解决方案5】:

          这给出了相同的输出...请检查

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

          【讨论】:

            【解决方案6】:

            试试这个:

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

            }

            【讨论】:

            • 内循环应该是 6-i+1
            • 你为什么又改了答案,我
            • i
            • 我已经测试过了,它肯定会工作。所以修改它,我没有发布答案,因为你们已经发布了,所以更正它......
            • 用这个browxy.com编译你的代码,这样你就可以错了……我已经告诉过你了……
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-02-15
            • 1970-01-01
            相关资源
            最近更新 更多