用 for 循环绘制图形(数字)

draw figure(numbers) with for loops

我刚开始 Java,我的老师让我画出以下数字形状:

123456654321
 2345665432
  34566543
   456654
    5665
     66
    5665
   456654
  34566543
 2345665432 
123456654321

image

到目前为止,我可以使用以下代码绘制第一条线和中间的一部分:

 int sz = 6;

    for (int i =1;i<=sz;i++)
        System.out.print(i);
    for(int j =sz;j>1;j--)
        System.out.print(j);

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

我在中间的其余部分遇到了麻烦 body。 任何人都可以通过使用嵌套 for 循环帮助我绘制那个吗?

你必须一行一行地走,因为println()之后,你就不能回到那里了。

对于图案的上半部分,您可以使用它。

int sz = 6;

   for(int d = 1;d<=sz;d++){

    for (int i = d;i <= sz;i++) //for increasing numbers
        System.out.print(i);
    for(int j=sz;j>=d;j--)  //for decreasing numbers
        System.out.print(j);

    System.out.println(); //for newline

    for(int m=0;m<d;m++) // for spaces
        System.out.print(" ");
   }

首先你构建一个数组,然后遍历这些行并构建它们:

int currentItem = 1;
int items[] = new int[12];
for (int index = 0; index < items.length; index++) {
    items[index] = (index < 6) ? currentItem++ : currentItem--;
}

for (int index2 = 0; index2 < 12; index2++) {
    String line = "";
    int limit = (index2 < 6) ? index2 : (12 - index2);
    for (int index3 = 0; index3 < items.length; index3++) {
        line += ((index3 >= limit) && (index3 < items.length - limit)) ? " " : items[index3];
    }
    System.out.println(line);
}