使用嵌套循环使用java创建模式

时间:2015-03-23 00:19:53

标签: java nested-loops

我必须制作一个钻石形状的图案,例如:

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

我写了这个(对不起,如果对于变量名,这只是我程序的一小部分,我正在努力使模式正确,所以我现在不介意我的变量):

public class NewFile{

 public static void main(String []args){
   int k = 0;
   for (int i=1 ; i<=5 ; i++)
    {
     { for (int h=2 ; h >= i ; h--)
           System.out.print(" ");
      for (int j=1  ; j<= i + k ; j++)
         System.out.print(j);
      for (int w=2 ; w>= i; w--)
         System.out.print(" ");

         }
         k++;
         System.out.println();}
  }
}

我的输出如下:

     1  
    123 
   12345
  1234567
 123456789

我意识到我应该使用两个循环将代码分成下三​​角和上三角。但是,我不知道如何打破第一部分。我确实找到了“趋势”,但我没有看到如何实现它。

1 个答案:

答案 0 :(得分:0)

以下代码将显示由星号组成的菱形:

 int i = 0, j, k, n;
 n = 7; // 7 characters high. Change as needed.

 for (k = 1; k <= (n + 1) / 2; k++) {
     for (i = 0; i < n - k; i++) {
         System.out.print(" ");
     }
     for (j = 0; j < k; j++) {
         System.out.print("* ");
     }
     System.out.println("");
 }

 for (k = ((n + 1) / 2); k < n; k++) {
     for (i = 1; i < k; i++) {
         System.out.print(" ");
     }
     for (j = 0; j < n - k; j++) {
         System.out.print(" *");
     }
     System.out.println("");
 }

整数n表示钻石的高度(以字符为单位),可以根据需要进行更改。