【问题标题】:Print upside down triangle using a nested loop in Java?使用Java中的嵌套循环打印倒三角形?
【发布时间】:2017-11-07 05:59:12
【问题描述】:

我要打印的三角形如下所示:

123456
23456
3456
456
56
6

到目前为止,我一直在打印:

123456
12345
1234
123
12
1

这是我想出的代码:

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

谁能帮我弄清楚我做错了什么?

【问题讨论】:

    标签: java loops for-loop nested-loops


    【解决方案1】:

    你已经很接近了。注意内循环的起始索引每次都需要改变。怎么样:

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

    【讨论】:

      【解决方案2】:

      你在内部 for 循环中走错了方向。

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

      通过在内部 for 循环中设置 j 等于 i,该行将自行向前移动一个。

      输出:

      123456
      23456
      3456
      456
      56
      6
      

      【讨论】:

        【解决方案3】:
        public class MyClass {
        public static void main(String args[]) {
        
        
        for(int i=1;i<7;i++){
        for(int j=i;j<7;j++)
            System.out.print(j);
        
        System.out.println("");
        }
        
        }
        }
        

        编辑:让我们考虑一下每个循环迭代的作用。 外部循环确保在前往下一行之前打印所有值。但是,如何打印所需的值?

        这是由内部循环完成的。它开始打印从当前迭代中的值 i 到值 n 的值(这里 n=6)。因此,在第一次迭代中,值将是 123456。在第二个(& 在下一行)中,值从 2 开始打印,即 23456 等等。这就是你需要的模式。

        【讨论】:

        • 如果您提供一些关于它如何以及为什么回答问题的评论,这个答案会更好。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-02-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多