循环调优 - 我需要重新编写这个Java程序片段

时间:2014-10-15 05:32:41

标签: java loops for-loop while-loop

我的目标是建立一个金字塔:

Example

我应该使用循环(for或while)来获得此效果。我用以下代码完成了这个:

package finalprob1;
public class FinalProb1 {
    public static void main(String[] args) {
        int row = 1;
        int input = 6;
        int rowcount = 11;
        int blocknum = 1, blockperrow = 1;
        while (row <= rowcount)
        {
          while(blocknum < blockperrow)
          {
            System.out.print(input * blocknum + " ");
            blocknum = blocknum +1 ; 
          }
          blocknum = 1;
          System.out.println();
          blockperrow = blockperrow + 1;
          row = row +1;
        }       
    } // END OF MAIN
} // END OF CLASS

代码非常混乱。我确信有一种非常简单的方法可以通过两个循环完成这个但我似乎无法弄明白。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:1)

可以像这样完成

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

答案 1 :(得分:1)

您可以按以下方式优化代码。

int size = 10;
for(int row = 1; row <= size; row++) {
    for(int col = 1;col <= row; col++) {
        System.out.print( 6*col + " ");
    }
    System.out.println();  
}

答案 2 :(得分:0)

试试这个 -

public class Test {

    private static final String sp = " "; // space

    public static void main(String[] args) {
        printTriangle(6, 60);

    }

    public static void printTriangle(int num, int maxMultiple) {

        int itr = maxMultiple / num;

        for (int i = 1; i <= itr; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(num * j + sp);
            }
            System.out.println();
        }

    }

}
相关问题