【问题标题】:Java: Formatting nested loops?Java:格式化嵌套循环?
【发布时间】:2021-01-11 01:12:16
【问题描述】:

我对 Java 很陌生,我想使用循环来制作阶梯效果,但是随着您向下走每一行,会在字符串中添加越来越多的空格。 这是我的代码-

        for(int i = size; i>0; i--) {
            for(int k = 1; k>size-1; k++) {
                output+=" ";
            }
            for(int j = i; j>0; j--) {
                output+=let;    
            }
            output+="\n";
        }
        return output;
    }

最终目标是让它打印:

22222
 2222
  222
   22
    2

但我的会打印这个:

22222
2222
222
22
2

对不起,我知道这是初学者的东西,但我不知道还能去哪里。任何帮助表示赞赏。谢谢。

【问题讨论】:

  • 提示:第一个内循环应该循环size - i 次。
  • 你的第二个for循环int k = 1; k>size-1; k++,应该是k < size

标签: java loops nested


【解决方案1】:

您每次都需要size - i 空格,因此请将for(int k = 1; k>size-1; k++) { 更改为for(int k = 0; k<size-i; k++) {

for(int i = size; i>0; i--) {
    for(int k = 0; k<size-i; k++) {
        output+=" ";
    }
    for(int j = i; j>0; j--) {
        output+=let;    
    }
    output+="\n";
}

【讨论】:

  • 非常感谢。我对这些东西真的很陌生。你真的帮助我学习!
  • @Lpatten2905 没问题。
【解决方案2】:

试试这个代码:

        int size=5;
        for(int i = size; i>0; i--) {
            for(int k = size-i; k>0; k--) {
                System.out.print(" ");
            }
            for(int j = i; j>0; j--) {
                System.out.print("2");
            }
            System.out.println("");
        }

您的第二个 for 循环条件错误。
for(int k = 1; k&gt;size-1; k++)转换为for(int k = size-i; k&gt;0; k--)

【讨论】:

    【解决方案3】:

    试试这个:

    for(int i=0; i<n; i++) 
          { 
             for(int j = 2 * (n-i); j >= 0; j--) 
             {           
                System.out.print(" "); 
             } 
             for(int j = 0; j<=i; j++) 
             {       
                System.out.print("2 "); 
             }           
             System.out.println();
          } 
    
    • 请注意,int n 是您要打印的行数
    • n = 5 -> 5 行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-21
      • 2021-12-11
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2021-01-21
      • 1970-01-01
      • 2016-12-10
      相关资源
      最近更新 更多